同一行(水平方向)的组件的对齐方式由 FlowLayout 的align属性确定,它可能的值如下:
- FlowLayout.LEFT : 左对齐
- FlowLayout.CENTER : 居中对齐(默认)
- FlowLayout.RIGHT : 右对齐
- FlowLayout.LEADING : 与容器方向的开始边对齐,例如,对于从左到右的方向,则与左边对齐
- FlowLayout.TRAILING : 与容器方向的结束边对齐,例如,对于从左到右的方向,则与右边对齐。
class FlowLayoutUse {
public FlowLayoutUse() {
JFrame jFrame = new JFrame("流式布局窗口");
// 创建面板并指定为流式布局
JPanel jPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
// 创建两个按钮
JButton jButton1 = new JButton("按钮1");
JButton jButton2 = new JButton("按钮2");
// 将按钮添加到面板中
jPanel.add(jButton1);
jPanel.add(jButton2);
// 将面板添加到窗口中
jFrame.setContentPane(jPanel);
// 省略公共代码
}
}
3.2、网格布局
GridLayout,网格布局管理器,它以矩形网格形式对容器的组件进行布置,把容器按行列分成大小相等的矩形网格,一个网格中放置一个组件,组件宽高自动撑满网格。
以行数和总数优先: 通过构造方法或 setRows 和 setColumns 方法将行数和列数都设置为非零值时,指定的列数将被忽略。列数通过指定的行数和布局中的组件总数来确定。因此,例如,如果指定了三行和两列,在布局中添加了九个组件,则它们将显示为三行三列。仅当将行数设置为零时,指定列数才对布局有效。
class GridLayoutUse {
public GridLayoutUse() {
JFrame jFrame = new JFrame("网格布局窗口");
// 创建一个面板并使用网格布局
JPanel jPanel = new JPanel(new GridLayout(2, 2));
// 创建五个按钮,测试2行2列超出效果
JButton jButton1 = new JButton("按钮1");
JButton jButton2 = new JButton("按钮2");
JButton jButton3 = new JButton("按钮3");
JButton jButton4 = new JButton("按钮4");
JButton jButton5 = new JButton("按钮5");
jPanel.add(jButton1);
jPanel.add(jButton2);
jPanel.add(jButton3);
jPanel.add(jButton4);
jPanel.add(jButton5);
jFrame.setContentPane(jPanel);
// 省略公共代码
}
}
3.3、边框布局
BorderLayout,边界布局管理器,它把 Container 按方位分为 5 个区域(东、西、南、北、中),每个区域放置一个组件。
class BorderLayoutUse {
public BorderLayoutUse() {
JFrame jFrame = new JFrame("网格布局窗口");
// 创建一个面板并使用边框布局
JPanel jPanel = new JPanel(new BorderLayout());
// 创建五个按钮,测试2行2列超出效果
JButton jButton1 = new JButton("东");
JButton jButton2 = new JButton("西");
JButton jButton3 = new JButton("南");
JButton jButton4 = new JButton("北");
JButton jButton5 = new JButton("中");
jPanel.add(jButton1, BorderLayout.EAST);
jPanel.add(jButton2, BorderLayout.WEST);
jPanel.add(jButton3, BorderLayout.SOUTH);
jPanel.add(jButton4, BorderLayout.NORTH);
jPanel.add(jButton5, BorderLayout.CENTER);
jFrame.setContentPane(jPanel);
// 省略公共代码
}
}
4、组件
4.1、基本组件
标签
JLabel,标签,主要用于展示