布局 管理 器的可视指南

几个 AWT 和 Swing 类提供了通用的布局 管理 器:

本节显示了使用这些布局 管理 器的示例 GUI,并告诉您在哪里可以找到每个布局 管理 器的操作方法页面。您可以在操作方法页面和example index中找到用于运行示例的链接。

Note:

本课涵盖了手工编写布局代码,这可能会很困难。如果您不希望了解布局 管理 的所有详细信息,则可能更喜欢将GroupLayout布局 管理 器与构建器工具结合使用来布局 GUI。 NetBeans IDE是此类构建器工具之一。否则,如果您想手工编码并且不想使用GroupLayout,那么推荐使用GridBagLayout作为下一个最灵活,功能最强大的布局 管理 器。

如果您对使用 JavaFX 创建 GUI 感兴趣,请参阅在 JavaFX 中使用布局

BorderLayout

使用 BorderLayout 的 GUI 的图片

每个内容窗格都初始化为使用BorderLayout。 (如使用顶层容器所述,内容窗格是所有框架,Servlets 和对话框的主要容器。)BorderLayout将组件最多放置在五个区域中:顶部,底部,左侧,右侧和中央。所有多余的空间都放在中心区域。如果要能够将工具条从其起始位置拖放,则必须在BorderLayout容器中创建使用JToolBar创建的工具条。有关更多详细信息,请参见如何使用 BorderLayout

BoxLayout

使用 BoxLayout 的 GUI 图片

BoxLayout类将组件放在单个行或一列中。它尊重组件要求的最大尺寸,并且还允许您对齐组件。有关更多详细信息,请参见如何使用 BoxLayout

CardLayout

使用 CardLayout 的 GUI 的图片

相同布局的另一张图片

CardLayout类使您可以实现在不同时间包含不同组件的区域。 CardLayout通常由组合框控制,组合框的状态确定CardLayout显示哪个面板(组件组)。使用CardLayout的替代方法是使用tabbed pane,它提供类似的功能,但具有 预定义的 GUI。有关更多详细信息,请参见如何使用 CardLayout

FlowLayout

使用 FlowLayout 的 GUI 的图片

FlowLayout是每个JPanel的默认布局 管理 器。它只是将组件布置在单行中,如果其容器不够宽,则开始新的一行。 CardLayoutDemo 中的两个面板(显示为previously)都使用FlowLayout。有关更多详细信息,请参见如何使用 FlowLayout

GridBagLayout

使用 GridBagLayout 的 GUI 的图片

GridBagLayout是复杂,灵活的布局 管理 器。它通过将组件放置在一个单元格网格中来对齐它们,从而允许组件跨越一个以上的单元格。网格中的行可以具有不同的高度,而网格列可以具有不同的宽度。有关更多详细信息,请参见如何使用 GridBagLayout

GridLayout

使用 GridLayout 的 GUI 的图片

GridLayout只是使一堆组件大小相等,并以请求的行数和列数显示它们。有关更多详细信息,请参见如何使用 GridLayout

GroupLayout

使用 GroupLayout 的 GUI 图片

GroupLayout是为 GUI 构建器工具开发的布局 管理 器,但也可以手动使用。 GroupLayout分别与水平和垂直布局一起使用。分别为每个尺寸定义布局。因此,每个组件需要在布局中定义两次。上面显示的“查找”窗口是GroupLayout的示例。有关更多详细信息,请参见如何使用 GroupLayout

SpringLayout

使用 SpringLayout 的 GUI 的图片

另一个使用 SpringLayout 的 GUI

SpringLayout是一个灵活的布局 管理 器,旨在供 GUI 构建器使用。它使您可以指定受其控制的组件边缘之间的精确关系。例如,您可以定义一个组件的左边缘与第二个组件的右边缘有一定距离(可以动态计算)。 SpringLayout根据一组约束布置其关联容器的子代,如如何使用 SpringLayout所示。