这些Java教程是针对JDK 8编写的。本页面中描述的示例和实践不利用后续版本中引入的改进,并可能使用不再可用的技术。
请参阅Java语言变更,了解Java SE 9及其后续版本中更新的语言特性的摘要。
请参阅JDK发行说明,了解所有JDK版本的新功能、增强功能和已删除或弃用选项的信息。
GroupLayout
布局管理器和构建工具来布局您的GUI。其中一个构建工具是NetBeans IDE。否则,如果您想手动编码而不想使用GroupLayout
,那么推荐使用GridBagLayout
作为下一个最灵活和强大的布局管理器。
如果您有兴趣使用JavaFX创建GUI,请参阅JavaFX中的布局。
问题:如何指定组件的精确大小?
setSize
或setBounds
方法来设置其大小。否则,您需要提供大小提示,然后确保您使用的是尊重大小提示的布局管理器。getMinimumSize
、getPreferredSize
和getMaximumSize
方法来提供大小提示。这种方法的好处是,每个getXxxxSize
方法可以通过调用super.getXxxxSize()
来获取组件的默认大小提示。然后,在返回大小之前,可以根据需要调整大小。对于文本组件来说,这非常方便,因为您可能希望固定宽度,但高度根据内容确定。然而,有时在GridBagLayout
和文本字段中可能会遇到问题,如果容器的大小小于首选大小,则使用最小大小,这可能导致文本字段缩小得相当多。setMinimumSize
、setPreferredSize
和setMaximumSize
方法。revalidate
方法,以确保其包含层次结构再次布局。然后调用repaint
方法。FlowLayout
和GridBagLayout
管理器使用组件的首选大小(后者取决于您设置的约束条件),但BorderLayout
和GridLayout
通常不使用。 BoxLayout
管理器通常使用组件的首选大小(尽管组件可以更大),并且是少数几个尊重组件最大大小的布局管理器之一。
问题:我将组件添加到容器后,它没有显示出来。
revalidate
和repaint
才能使其在容器中显示出来。问题:我的自定义组件的大小太小。
getPreferredSize
和getMinimumSize
方法?如果是,它们是否返回了正确的值?如果您在这个列表中没有找到您的问题,请参阅解决常见组件问题。