1.流式布局FlowLayout
public void pack()调整此窗口的大小,以适合其子组件的首选大小和布局。如果该窗口或其所有者仍不可显示,则两者在计算首选大小之前变得可显示。在计算首选大小之后,将会验证该Window。窗口自动适应大小,使窗口能正好显示里面所有的控件。
import java.awt.*;
public class FlowLayoutDemo {
public static void main(String[] args) {
Frame frame = new Frame("这里测试FlowLayout");
//1.通过setLayout方法设置容器的布局管理器
// frame.setLayout(new FlowLayout(FlowLayout.LEFT,20,20));
//frame.setLayout(new FlowLayout(FlowLayout.CENTER,20,20));
frame.setLayout(new FlowLayout(FlowLayout.RIGHT,40,20));
//2.添加多个按钮到frame中
for (int i = 1; i <= 100; i++) {
frame.add(new Button("按钮"+i));
}
//3.设置最佳大小,pack方法 大小适中
frame.pack();
frame.setVisible(true);
}
}
右对齐:
居中对齐:
左对齐:
2.边界布局BorderLayout
当改变使用 BorderLayout 的容器大小时, NORTH 、 SOUTH 和 CENTER区域水平调整,而 EAST 、 WEST 和 CENTER 区域垂直调整。使用BorderLayout 有如下两个注意点:
1. 当向使用 BorderLayout 布局管理器的容器中添加组件时 , 需要指定要添加到哪个区域中 。 如果没有指定添加到哪个区域中,则默认添加到中间区域中,其他区域空出的话,也会被中间区域占用;
2. 如果向同一个区域中添加多个组件时 , 后放入的组件会覆盖先放入的组件
3.网格布局GridLayout
import javax.swing.JFrame;
import java.awt.*;
import javax.swing.*;
public class GridLayoutDemo extends JFrame{
public static void main(String []args)
{
GridLayoutDemo win = new GridLayoutDemo();
}
public GridLayoutDemo()
{
//1.创建对象,并且标题设置为计算器
this.setTitle("这是一个计算器的界面");
this.setBounds(100,200,500,500);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
init();
}
public void init()
{
//2.创建一个Panel对象,并且往Panel中放置一个TextField组件
JPanel p1 = new JPanel();
p1.add(new JTextField(30));
//3.把上述的Panel放入到窗口的北侧区域
this.