在Swing中使用的所有布局管理器都可以实现LayoutManager接口,在Swing中主要使用的5种布局管理器:FlowLayout、BorderLayout、GridLayout、CardLayout、绝对定位。

import java.awt.FlowLayout;

import javax.swing.JButton;
import javax.swing.JFrame; //=================================================
// File Name : FlowLayout_demo
//------------------------------------------------------------------------------
// Author : Common //主类
//Function : FlowLayout_demo
public class FlowLayout_demo { public static void main(String[] args) {
// TODO 自动生成的方法存根
JFrame f = new JFrame("Swing窗口"); //实例化窗体对象
//设置窗体中的布局管理器为FlowLayout,所有的组件居中对齐,水平和垂直间距为3
f.setLayout(new FlowLayout(FlowLayout.CENTER,3,3));
JButton but = null;
for(int i=0;i<9;i++){
but = new JButton("按钮--"+i);
f.add(but);
}
f.setSize(500, 200);
f.setVisible(true);
} }

import java.awt.BorderLayout;
import java.awt.FlowLayout; import javax.swing.JButton;
import javax.swing.JFrame; //=================================================
// File Name : BorderLayout_demo
//------------------------------------------------------------------------------
// Author : Common //主类
//Function : BorderLayout_demo
public class BorderLayout_demo { public static void main(String[] args) {
// TODO 自动生成的方法存根
JFrame f = new JFrame("Swing窗口"); //实例化窗体对象
//设置窗体中的布局管理器为BorderLayout,水平和垂直间距为3
f.setLayout(new BorderLayout(3,3));
f.add(new JButton("东"),BorderLayout.EAST);
f.add(new JButton("西"),BorderLayout.WEST);
f.add(new JButton("南"),BorderLayout.SOUTH);
f.add(new JButton("北"),BorderLayout.NORTH);
f.add(new JButton("中"),BorderLayout.CENTER);
f.pack(); //根据组件自动调整窗体的大小
f.setVisible(true);
} }

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout; import javax.swing.JButton;
import javax.swing.JFrame; //=================================================
// File Name : GridLayout_demo
//------------------------------------------------------------------------------
// Author : Common //主类
//Function : GridLayout_demo
public class GridLayout_demo { public static void main(String[] args) {
// TODO 自动生成的方法存根
JFrame f = new JFrame("Swing窗口"); //实例化窗体对象
//设置窗体中的布局管理器为GridLayout,3乘以5,水平和垂直间距为3
f.setLayout(new GridLayout(3,5,3,3));
JButton but = null;
for(int i=0;i<13;i++){
but = new JButton("按钮--"+i);
f.add(but);
}
f.pack(); //根据组件自动调整窗体大小
f.setVisible(true);
} }

import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.GridLayout; import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel; //=================================================
// File Name : CardLayout_demo
//------------------------------------------------------------------------------
// Author : Common //主类
//Function : CardLayout_demo
public class CardLayout_demo { public static void main(String[] args) {
// TODO 自动生成的方法存根
JFrame f = new JFrame("Swing窗口"); //实例化窗体对象
Container cont = f.getContentPane(); //取得窗体容器
CardLayout card = new CardLayout(); //定义布局管理器
f.setLayout(card);
cont.add(new JLabel("东123456789",JLabel.CENTER),"first");
cont.add(new JLabel("西123456789",JLabel.CENTER),"second");
cont.add(new JLabel("南123456789",JLabel.CENTER),"third");
cont.add(new JLabel("北123456789",JLabel.CENTER),"fourth");
cont.add(new JLabel("中123456789",JLabel.CENTER),"fifth");
f.pack(); //根据组件自动调整窗体大小
f.setVisible(true);
card.show(cont, "third");
for(int i=0;i<5;i++){ //循环显示每张卡片
try{
Thread.sleep(3000);
}catch(InterruptedException e){
}
card.next(cont);
} } }

import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.GridLayout; import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel; //=================================================
// File Name : AbsoluteLayout_demo
//------------------------------------------------------------------------------
// Author : Common //主类
//Function : AbsoluteLayout_demo
public class AbsoluteLayout_demo { public static void main(String[] args) {
// TODO 自动生成的方法存根
JFrame f = new JFrame("Swing窗口"); //实例化窗体对象
f.setLayout(null); //绝对定位
JLabel title = new JLabel("标签对象"); //建立标签对象
JButton enter = new JButton("进入"); //建立按钮对象
JButton help = new JButton("帮助");
f.setSize(200,90); //设置窗体大小
title.setBounds(45,5,150,20); //设置组件的位置及其大小
enter.setBounds(10,30,80,20); //设置组件的位置及其大小
help.setBounds(100,30,80,20); //设置组件的位置及其大小
f.add(title);
f.add(enter);
f.add(help);
f.setVisible(true); } }

最新文章

  1. AlloyRenderingEngine文本框组件
  2. 【译】Spring 4 基于TaskScheduler实现定时任务(注解)
  3. hadoop多次格式化后,导致datanode启动不了,怎么办?(伪分布式)
  4. 搭建scala开发环境
  5. oracle数据库优化
  6. LightOJ 1074 Extended Traffic SPFA 消负环
  7. cocos2dx系列笔记(1)- windows环境配置前篇
  8. SGU 222.Little Rooks
  9. 关于JAVA 向上转型
  10. linux系统必学-部分链接
  11. staticmethod、classmethod的使用
  12. 关于npm run build 报错解决方案
  13. python mac 环境配置
  14. 自定义Log 写到文件中
  15. SpringCloud报错: &quot;Field discoveryClient in com.controller.DcController required a bean of type &#39;com.netflix.discovery.DiscoveryClient&#39; that could not be found.&quot;
  16. 了不起的Node.js--之一
  17. Ubuntu 16.04 标题栏实时显示上下行网速、CPU及内存使用率
  18. DWZ主从表界面唯一性验证(自写js)(二)
  19. ArrayBlockingQueue 阻塞队列和 Semaphore 信号灯的应用
  20. 谷歌浏览器安装vuejs devtools 插件

热门文章

  1. 个人对final发布产品的排名
  2. Eclipse+Maven创建webapp项目&lt;一&gt;
  3. 在Ubuntu 14.04安装Nginx
  4. Eclipse 中 安装 SVN 插件
  5. htm.dropdownlist
  6. 【POJ 1981 】Circle and Points
  7. KM算法及其优化的学习笔记&amp;&amp;bzoj2539: [Ctsc2000]丘比特的烦恼
  8. VI,CI,UI
  9. BZOJ 1112: [POI2008]砖块Klo
  10. Bzoj1497 [NOI2006]最大获利