java布局管理器---BorderLayout(边界布局管理器)
Swing组件不能单独存在,必须放置在于容器中,然而组件在容器中的位置和尺寸是由布局管理器决定的。
Swing工具在AWT的基础上提供8种布局管理器:
BorderLayout(边界布局管理器)、BoxLayout(箱式布局管理器)、CardLayout(卡片布局管理器)
FlowLayout(流式布局管理器)、GridBagLayout(网格包布局管理器)、GridLayout(网格布局管理器)
GroupLayout(分组布局管理器)、SpingLayout(弹性布局管理器)。
1.BorderLayout(边界布局管理器)
BorderLayout(边界布局管理器)是一种比较复杂的布局方式,它将容器划分为5个区域,分别为 页头(PAGE_START)、页尾(PAGE_END)、行首(LINE_START)、行尾(LINE_END)、中部(CENTER).
组件可以被放置在这5个区域中的任意一个位置。
使用BorderLayout(边界布局管理器)时,需要使用 add(Component,Object constraints) 方法,其中参数 comp 表示要添加的组件, constraint 指定将组件添加到布局中的位置,是一个 Object类型 ,在传参数时,可以使用 BorderLayout
类提供的5个常量设置组件位置,分别为上面所提到的5个区域
下面结合一个案例演示BorderLayout(边界布局管理器)对组件布局的效果:
import java.awt.*;
import javax.swing.*;
public class BorderLayoutTemp {
private static void createGUI() {
//创建一个名为BorderLayout的顶级容器窗口
JFrame jframe=new JFrame("BorderLayout");
//设置窗体中的布局管理器为BorderLayout
jframe.setLayout(new BorderLayout());
jframe.setSize(300, 300); //设置窗口大小
jframe.setLocation(300, 200); //设置窗体显示的位置
//下面创建5个按钮组件
JButton but1=new JButton("PAGE_START");
JButton but2=new JButton("PAGE_END");
JButton but3=new JButton("LINE_START");
JButton but4=new JButton("LINE_END");
JButton but5=new JButton("CENTER");
//将创建好的按钮组件添加到窗体中,设置按钮所在的区域
jframe.add(but1,BorderLayout.PAGE_START);
jframe.add(but2,BorderLayout.PAGE_END);
jframe.add(but3,BorderLayout.LINE_START);
jframe.add(but4,BorderLayout.LINE_END);
jframe.add(but5, BorderLayout.CENTER );
jframe.setVisible(true); //设置窗体可见
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
//使用SwingUtilities工具类调用createGUI方法并显示GUI
SwingUtilities.invokeLater(BorderLayoutTemp::createGUI);
}
}
运行效果:
BorderLayout 的好处在于可以限定各个区域的边界,当用户改变容器窗口大小时,各组件的相对位置不会发生改变。需要注意的是,在向BorderLayout添加组件时,如果不指定添加到那个区域,则默认添加到 CENTER区域 ,同时在每一个区域只能放一个组件,当添加多的组件时,后面放的组件会覆盖前面的组件。
欢迎关注知乎,留言咨询!