java Swing(顶级容器和常用布局管理器)

一、Swing容器JFrame

(又叫窗口,不能放在其他容器之中)
常用构造方法JFrame("String title")
eg: JFrame frame = new JFrame("这是窗口标题");
java Swing(顶级容器和常用布局管理器)_第1张图片

二、Swing容器JDialog

(又叫对话框)

  • 模态对话框:用户必须处理完该对话框后才能与其他对话框进行交互;
  • 非模态对话框:允许用户处理对话框的同时与其他窗口交互;

常用构造方法:
JDialog(Frame owner);
JDialog(Frame owner,String title,boolean modal);
owner为对话框所有者(顶级窗口JFrame);
modal为true就是模态对话框,false为非模态对话框;不指定默认为false。

三、Swing常见布局管理器

(不能单独存在必须放在容器中)

1.BorderLayout(边界布局管理器)

将容器划分为5个区域:
java Swing(顶级容器和常用布局管理器)_第2张图片
向BorderLayout布局管理器中添加组件时用到的方法:
add(Component comp,Object constrains);
comp:表示要添加的组件;constrains:添加到布局中的位置;
示例:

JFrame f = new JFrame("BorderLayout");
// 设置窗体中的布局管理器为BorderLayout
f.setLayout(new BorderLayout());
f.setSize(300, 300);     // 设置窗体大小
f.setLocation(300, 200); // 设置窗体显示的位置
// 将按钮组件添加到窗体中,并设置按钮所在的区域
f.add(new JButton("PAGE_START"), BorderLayout.PAGE_START);
f.add(new JButton("PAGE_END"), BorderLayout.PAGE_END);
f.add(new JButton("LINE_START"), BorderLayout.LINE_START);
f.add(new JButton("LINE_END"), BorderLayout.LINE_END);
f.add(new JButton("CENTER"), BorderLayout.CENTER);
f.setVisible(true);  // 设置窗体可见
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

java Swing(顶级容器和常用布局管理器)_第3张图片
注:当不指定添加到哪个区域时,默认添加到CENTER区域,且后续添加会覆盖之前放入的组件。

2.FlowLayout(流式布局管理器)

(从左向右放置,在到达边界时会自动换行,且组件会随着窗口缩放而改变位置,即换行)

常用构造方法:FlowLayout(int align,int hgap,int vgap);
align:对齐方式;hgap:组件水平间距;vgap:组件垂直间距。

		JFrame f = new JFrame("Flowlayout"); 
		// 设置窗体中的布局管理器为FlowLayout,
		// 所有组件左对齐,水平间距为20,垂直间距为30
		f.setLayout(new FlowLayout(FlowLayout.LEFT, 20, 30));
		f.setSize(400, 200);                 // 设置窗体大小
		f.setLocation(300, 200);             // 设置窗体显示的位置
		// 向容器添加组件
		f.add(new JButton("第1个按钮"));  
		f.add(new JButton("第2个按钮"));
		f.add(new JButton("第3个按钮"));  
		f.add(new JButton("第4个按钮"));
		f.add(new JButton("第5个按钮"));  
		f.setVisible(true);                  // 设置窗体可见
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

java Swing(顶级容器和常用布局管理器)_第4张图片

3.GirdLayout(网格布局管理器)

(使用纵横线将容器分为n行m列大小相等的网格,排列顺序为从左至右,从上至下)
常用构造方法:GirdLayout(int rows,int cols,int hgap,int vgap);

JFrame f = new JFrame("GridLayout");
		f.setLayout(new GridLayout(3, 3, 20, 30));  // 设置该窗体为3*3的网格
		f.setSize(300, 300);                // 设置窗体大小
		f.setLocation(400, 300);
		// 下面的代码是循环添加8个按钮组件到GridLayout容器中
		for (int i = 1; i < 9; i++) {
			Button btn = new Button("btn" + i);
			f.add(btn);                     
		}
		f.setVisible(true);
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

java Swing(顶级容器和常用布局管理器)_第5张图片

你可能感兴趣的:(java Swing(顶级容器和常用布局管理器))