本文共 2957 字,大约阅读时间需要 9 分钟。
1、FlowLayout------像水流一样依次进行排列
import java.awt.*;import javax.swing.*;public class TestFlowLayout { public static void main(String[] args) { JFrame frame = new JFrame("Hello");// 实例化窗体对象 frame.setLayout(new FlowLayout(FlowLayout.CENTER,3,3));//所有组件居中对齐,水平和垂直间距为3 JButton button = null; for(int i=0; i<9; i++){ button = new JButton("按钮 - "+i); frame.add(button);//加入按钮 } frame.setSize(280,140);//设置窗体大小 frame.setVisible(true);//设置窗体可见 }}
2、BorderLayout------分东南西北中五个区域
import java.awt.*;import javax.swing.*;public class TestBorderLayout { public static void main(String[] args) { JFrame frame = new JFrame("Hello");// 实例化窗体对象 frame.setLayout(new BorderLayout(3, 3));// 水平和垂直间距都是3 frame.add(new JButton("East"), BorderLayout.EAST); frame.add(new JButton("South"), BorderLayout.SOUTH); frame.add(new JButton("West"), BorderLayout.WEST); frame.add(new JButton("North"), BorderLayout.NORTH); frame.add(new JButton("Center"), BorderLayout.CENTER); frame.pack();//根据组件自动调整窗体的大小 frame.setLocationRelativeTo(null);//居中 frame.setVisible(true);//设置窗体可见 }}
3、GridLayout------以表格形式进行排列,必须设置行数和列数
import java.awt.*;import javax.swing.*;public class TestGridLayout { public static void main(String[] args) { JFrame frame = new JFrame("Hello");// 实例化窗体对象 frame.setLayout(new GridLayout(4,4,3,3));//4*4进行排列,水平和垂直间距都是3 JButton button = null; for(int i=0; i<13; i++){ button = new JButton("按钮 - "+i); frame.add(button);//加入按钮 } frame.pack();//根据组件自动调整窗体的大小 frame.setLocationRelativeTo(null);//居中 frame.setVisible(true);//设置窗体可见 }}
4、CardLayout------像一张张卡片一样,会彼此重叠,每次只展现一个界面
import java.awt.*;import javax.swing.*;public class TestCardLayout { public static void main(String[] args) { JFrame frame = new JFrame("Hello");// 实例化窗体对象 Container cont = frame.getContentPane();//取得窗体容器 CardLayout card = new CardLayout(); frame.setLayout(card); cont.add(new JLabel("A",JLabel.CENTER),"first"); cont.add(new JLabel("B",JLabel.CENTER),"second"); cont.add(new JLabel("C",JLabel.CENTER),"third"); cont.add(new JLabel("D",JLabel.CENTER),"fourth"); cont.add(new JLabel("E",JLabel.CENTER),"fifth"); frame.pack();//根据组件自动调整窗体的大小 frame.setLocationRelativeTo(null);//居中 frame.setVisible(true);//设置窗体可见 card.show(cont, "third");//显示第三张卡片 for(int i=0; i<5; i++){ try{ Thread.sleep(1000);//加入显示延迟 } catch(Exception e) { e.printStackTrace(); } card.next(cont);//从容器中取出组件 } }}
5、绝对定位------设置每一个组件的具体位置
import javax.swing.*;public class TestAbsoluteLayout { public static void main(String[] args) { JFrame frame = new JFrame("Hello");// 实例化窗体对象 frame.setLayout(null);//使用绝对定位 JLabel title = new JLabel("OK"); JButton enter = new JButton("Enter"); JButton help = new JButton("Help"); frame.setSize(200,100); title.setBounds(45,5,150,20); enter.setBounds(10,30,80,20); help.setBounds(100,30,80,20); frame.add(title); frame.add(enter); frame.add(help); frame.setLocationRelativeTo(null);//居中 frame.setVisible(true);//设置窗体可见 }}
转载地址:http://lpsqf.baihongyu.com/