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);
	}
	//调用createGUI方法
	public static void main(String[] args) {     
		//使用SwingUtilities工具类调用createGUI方法并显示GUI
		SwingUtilities.invokeLater(BorderLayoutTemp::createGUI);
	}
}

运行结果:
在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐