在布局管理器中,可通过确定容器内组件的大小和位置,控制在 GUI 窗体中排列可视组件的方式。这是通过实现 LayoutManager 接口来完成的。
缺省情况下,通过 GUI 生成器创建的新窗体使用 FreeDesign 范例,可以在其中使用可视基准线(自动建议组件的最佳对齐方式和间距)来布置窗体。在工作时,GUI 生成器将您的设计理念转化为正常工作的 UI,而无需指定布局管理器。由于 FreeDesign 使用动态布局模型,因此,只要您调整窗体大小或切换语言环境,GUI 就会调整以适应这些更改,而不会改变组件之间的关系。
例如,如果使用通过 IDE 的早期版本创建的窗体,或者希望窗体与标准 Java 类兼容,则可以为窗体指定布局管理器。
您可以在 IDE 中选择以下布局管理器:
FlowLayout () 如同书页上的字一样在容器中排列组件。它从左到右填充顶行,直到不能容纳任何其他组件为止,然后再以同样的方式继续填充后面的每一行。
BorderLayout () 沿容器的边缘或中心排列组件。通过使用 BorderLayout,您可以将组件放在以下五个可能的位置:“北”、“南”、“东”、“西”和“中心”,分别对应于容器的顶部、底部、右边缘和左边缘以及内部区域。
GridLayout () 将组件放在单元格大小相同的网格中,并将组件从左到右、从上到下添加到网格中。
GridBagLayout () 是一个功能强大的布局管理器,它使用一组复杂的组件属性(称为“约束”)来精确控制布局的各个方面,甚至在调整容器大小时也是如此。它对于多平台 Java 应用程序特别有用,因为可使用它来创建自由格式的布局,这些布局在所有平台上保持一致的外观。
GridBagLayout 将组件放在由行和列组成的网格中,并非所有网格单元的大小都是相同的。此外,组件可以跨越多行或多列,或同时跨越多行和多列。有关使用 GridBagLayout 的详细信息,请参见使用 GridBag 定制器。
CardLayout () 提供了一种管理占据同一显示区的两个或多个组件的方法。在使用 CardLayout 时,每个组件就像一副纸牌中的一张牌,所有纸牌的大小都相同,且任何时候都只能看到顶部的牌。因为组件占据同一显示空间,所以在设计时必须使用“检查器”窗口选择各个组件。
BoxLayout () 允许垂直或水平(但不能同时在两个方向)排列多个组件。BoxLayout 管理的组件按添加到容器的顺序,从左到右或从上到下排列。添加更多组件时,甚至在调整容器大小时,BoxLayout 中的组件也不能换到第二行或第二列。
AbsoluteLayout () 是一种特殊的 IDE 布局管理器,可使用它将组件准确放在窗体中的所需位置,在 IDE 中任意移动组件以及使用组件选择边框来调整其大小。这对于生成原型特别有用,因为没有任何格式限制,并且不需要输入任何属性设置。但是,建议不要将其用于生产应用程序,因为当环境发生改变时,组件的固定位置和大小并不会随之改变。
可使用 Null Layout () 来设计窗体,而无需使用任何布局管理器。与 AbsoluteLayout 类似,它对快速生成原型非常有用,但建议不要将其用于生产应用程序,因为当环境发生改变时,组件的固定位置和大小并不会随之改变。