Layout(布局)
Created|Updated
|Post Views:
1
| container.setLayout(new Layout的类())
|
null布局
传给Layout()null参数
再setBounds(,,,,)按钮的坐标和大小

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| package 绝对布局; import java.awt.*; import javax.swing.*;
public class Demo extends JFrame{ public Demo() { setBounds(200, 200, 500, 300); setDefaultCloseOperation(EXIT_ON_CLOSE); Container c = getContentPane(); c.setLayout(null); JButton b1 = new JButton("按钮1"); JButton b2 = new JButton("按钮2"); b1.setBounds(20, 30, 80, 30); b2.setBounds(100, 40, 100, 40); c.add(b1); c.add(b2); setVisible(true); } public static void main(String[] args) { new Demo(); } }
|
FlowLayout
- 给
c.setLayout( )new 一个FlowLayout类
- FlowLayout类的构造方法参数
FlowLayout(Flowlayout.<左右对齐>, 左右间隔, 上下间隔)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| package 流布局;
import java.awt.*; import javax.swing.*; public class Demo extends JFrame{ public Demo() { setBounds(300, 300, 500, 500); setDefaultCloseOperation(EXIT_ON_CLOSE); Container c = getContentPane();
c.setLayout(new FlowLayout(FlowLayout.LEFT,50, 20));
for (int i = 0; i < 10; i++) { c.add(new Button("按钮" + i + 1)); } setVisible(true); } public static void main(String[] args) { new Demo(); } }
|
BorderLayout
- 给setLayout()new一个BorderLayout类
- 将按钮添加到容器中,需要指定位置
c.add(<按钮>, 位置参数)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| package 边界布局;
import java.awt.*; import javax.swing.*; public class Demo extends JFrame{ public Demo() { setBounds(300, 300, 300, 300); setDefaultCloseOperation(EXIT_ON_CLOSE); Container c = getContentPane();
c.setLayout(new BorderLayout()); JButton b1 = new JButton("东"), b2 = new JButton("西"), b3 = new JButton("南"), b4 = new JButton("北"), b5 = new JButton("中"); c.add(b1, BorderLayout.EAST); c.add(b2, BorderLayout.WEST); c.add(b3, BorderLayout.SOUTH); c.add(b4, BorderLayout.NORTH); c.add(b5, BorderLayout.CENTER); c.add(new JButton("覆盖"), BorderLayout.CENTER);
setVisible(true); } public static void main(String[] args) { new Demo(); } }
|
GridLayout(网格布局)
- 给setlayout()new一个GridLayout类。
参数

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| public class Demo extends JFrame{ public Demo() { setBounds(200, 200, 300, 300); setDefaultCloseOperation(EXIT_ON_CLOSE); Container c = getContentPane(); c.setLayout(new GridLayout(4, 5, 20, 20)); for (int i = 0; i < 20; i++) { c.add(new JButton("按钮" + (i+1))); } setVisible(true); } public static void main(String[] args) { new Demo(); } }
|