Java教程是针对JDK 8编写的。本页面中描述的示例和实践不利用后续版本中引入的改进,并可能使用不再可用的技术。
有关Java SE 9及后续版本中更新的语言功能的摘要,请参见Java语言更改。
有关所有JDK版本的新功能、增强功能以及已删除或已弃用选项的信息,请参见JDK发行说明。
GroupLayout
布局管理器结合构建工具来布局您的GUI。其中一种构建工具是NetBeans IDE。否则,如果您想手动编码并且不想使用GroupLayout
,那么建议您使用GridBagLayout
作为下一个最灵活和强大的布局管理器。
如果您有兴趣使用JavaFX创建GUI,请参阅在JavaFX中使用布局。
这是一个使用LayoutManager2
的容器的布局管理序列示例。
布局管理器基于提供的约束、容器的属性(如插入)以及子组件的最小/首选/最大尺寸来完成这些操作。如果子组件本身是一个容器,则使用其自身的布局管理器来获取其最小/首选/最大尺寸并进行布局。
容器可以是有效的(即isValid()
返回true)或无效的。对于容器有效,所有容器的子组件必须已经布局并且都有效。可以使用Container.validate
方法来验证一个无效的容器。此方法触发容器及其所有子容器的布局,并将此容器标记为有效。
组件创建后,默认处于无效状态。窗口的Window.pack
方法会验证窗口并首次布局窗口的组件层次结构。
最终结果是,为了确定容器的最佳尺寸,系统会确定容器层次结构底部的容器的尺寸。这些尺寸会向上层容器传递,最终确定容器的总尺寸。
如果组件的尺寸发生变化,例如更改字体后,必须通过调用该组件的revalidate
和repaint
方法对其进行调整大小和重绘。两者revalidate
和repaint
都是线程安全的 - 您不需要从事件调度线程调用它们。
当在组件上调用revalidate
时,请求将沿着容器层次结构向上传递,直到遇到不应受到组件调整大小影响的容器,例如滚动窗格或顶级容器。然后对容器进行布局,这将调整重新验证的组件的大小和所有受影响组件的大小。