Java教程是针对JDK 8编写的。本页面描述的示例和实践不利用后续版本中引入的改进,并可能使用不再可用的技术。
请参阅Java语言更改了解Java SE 9及其后续版本中更新的语言功能的摘要。
请参阅JDK发布说明了解所有JDK版本的新功能、增强功能以及删除或弃用选项的信息。
GroupLayout布局管理器结合构建工具来布局您的GUI。其中一个构建工具是NetBeans IDE。否则,如果您想手动编码而不想使用GroupLayout,那么推荐使用GridBagLayout作为下一个最灵活和强大的布局管理器。
如果您有兴趣使用JavaFX创建GUI,请参阅JavaFX中的布局。
下图是使用GridLayout类的应用程序的快照。
点击“启动”按钮运行使用Java™ Web Start运行GridLayoutDemo(下载JDK 7或更高版本)。或者,如果要自己编译和运行示例,请查阅示例索引。
这个演示的完整代码在GridLayoutDemo.java文件中。
GridLayout对象将组件放置在一个单元格网格中。每个组件占据其单元格中的所有可用空间,并且每个单元格的大小完全相同。如果调整GridLayoutDemo窗口的大小,GridLayout对象会更改单元格大小,使得单元格尽可能大,以适应容器可用的空间。
下面的代码片段创建了GridLayout对象和它管理的组件。
GridLayout experimentLayout = new GridLayout(0,2);
...
compsToExperiment.setLayout(experimentLayout);
compsToExperiment.add(new JButton("按钮1"));
compsToExperiment.add(new JButton("按钮2"));
compsToExperiment.add(new JButton("按钮3"));
compsToExperiment.add(new JButton("较长名称的按钮4"));
compsToExperiment.add(new JButton("5"));
GridLayout类的构造函数创建一个具有两列和必要数量行的实例。
使用组合框设置组件周围的垂直或水平填充量,然后点击“应用间隙”按钮。以下代码片段展示了如何使用GridLayout类的setVgap和setHgap方法来处理您的选择:
applyButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
//获取水平间隙的值
String horGap = (String)horGapComboBox.getSelectedItem();
//获取垂直间隙的值
String verGap = (String)verGapComboBox.getSelectedItem();
//设置水平间隙的值
experimentLayout.setHgap(Integer.parseInt(horGap));
//设置垂直间隙的值
experimentLayout.setVgap(Integer.parseInt(verGap));
//设置按钮的布局
experimentLayout.layoutContainer(compsToExperiment);
}
});
下表列出了GridLayout类的构造函数,指定了行数和列数。
| 构造函数 | 目的 |
|---|---|
GridLayout(int rows, int cols) |
创建具有指定行数和列数的网格布局。布局中的所有组件具有相等的大小。 rows和cols中的一个(但不是两个都)可以为零,这意味着任意数量的对象可以放置在一行或一列中。 |
GridLayout(int rows, int cols, int hgap, int vgap) |
创建具有指定行数和列数的网格布局。此外,水平和垂直间隙设置为指定的值。水平间隙位于每个列之间。垂直间隙位于每个行之间。 |
GridLayout类有两个构造函数:
以下表格列出了使用GridLayout类的代码示例,并提供了相关章节的链接。
| 示例 | 说明 | 备注 |
|---|---|---|
GridLayoutDemo |
本页面 | 使用了2列网格。 |
ComboBoxDemo2 |
如何使用组合框 | 这是许多示例之一,使用了1x1的网格以使组件尽可能大。 |
LabelDemo |
如何使用标签 | 使用了3行网格。 |