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行网格。 |