布局 管理 器的可视指南
几个 AWT 和 Swing 类提供了通用的布局 管理 器:
本节显示了使用这些布局 管理 器的示例 GUI,并告诉您在哪里可以找到每个布局 管理 器的操作方法页面。您可以在操作方法页面和example index中找到用于运行示例的链接。
Note:
本课涵盖了手工编写布局代码,这可能会很困难。如果您不希望了解布局 管理 的所有详细信息,则可能更喜欢将GroupLayout
布局 管理 器与构建器工具结合使用来布局 GUI。 NetBeans IDE是此类构建器工具之一。否则,如果您想手工编码并且不想使用GroupLayout
,那么推荐使用GridBagLayout
作为下一个最灵活,功能最强大的布局 管理 器。
如果您对使用 JavaFX 创建 GUI 感兴趣,请参阅在 JavaFX 中使用布局。
BorderLayout
每个内容窗格都初始化为使用BorderLayout
。 (如使用顶层容器所述,内容窗格是所有框架,Servlets 和对话框的主要容器。)BorderLayout
将组件最多放置在五个区域中:顶部,底部,左侧,右侧和中央。所有多余的空间都放在中心区域。如果要能够将工具条从其起始位置拖放,则必须在BorderLayout
容器中创建使用JToolBar创建的工具条。有关更多详细信息,请参见如何使用 BorderLayout。
BoxLayout
BoxLayout
类将组件放在单个行或一列中。它尊重组件要求的最大尺寸,并且还允许您对齐组件。有关更多详细信息,请参见如何使用 BoxLayout。
CardLayout
CardLayout
类使您可以实现在不同时间包含不同组件的区域。 CardLayout
通常由组合框控制,组合框的状态确定CardLayout
显示哪个面板(组件组)。使用CardLayout
的替代方法是使用tabbed pane,它提供类似的功能,但具有 预定义的 GUI。有关更多详细信息,请参见如何使用 CardLayout。
FlowLayout
FlowLayout
是每个JPanel
的默认布局 管理 器。它只是将组件布置在单行中,如果其容器不够宽,则开始新的一行。 CardLayoutDemo 中的两个面板(显示为previously)都使用FlowLayout
。有关更多详细信息,请参见如何使用 FlowLayout。
GridBagLayout
GridBagLayout
是复杂,灵活的布局 管理 器。它通过将组件放置在一个单元格网格中来对齐它们,从而允许组件跨越一个以上的单元格。网格中的行可以具有不同的高度,而网格列可以具有不同的宽度。有关更多详细信息,请参见如何使用 GridBagLayout。
GridLayout
GridLayout
只是使一堆组件大小相等,并以请求的行数和列数显示它们。有关更多详细信息,请参见如何使用 GridLayout。
GroupLayout
GroupLayout
是为 GUI 构建器工具开发的布局 管理 器,但也可以手动使用。 GroupLayout
分别与水平和垂直布局一起使用。分别为每个尺寸定义布局。因此,每个组件需要在布局中定义两次。上面显示的“查找”窗口是GroupLayout
的示例。有关更多详细信息,请参见如何使用 GroupLayout。
SpringLayout
SpringLayout
是一个灵活的布局 管理 器,旨在供 GUI 构建器使用。它使您可以指定受其控制的组件边缘之间的精确关系。例如,您可以定义一个组件的左边缘与第二个组件的右边缘有一定距离(可以动态计算)。 SpringLayout
根据一组约束布置其关联容器的子代,如如何使用 SpringLayout所示。