在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); } }