Swing Containers和Controllers不遵守应用于它们的设置?

时间:2011-10-16 08:40:46

标签: java swing netbeans netbeans-6.9 netbeans-7

我正在使用Netbeans 7,我在设计Swing容器和控制器时遇到了最不寻常的情况。由于某些未知原因,在某些情况下,容器或控制器决定选择自己的大小和尺寸,即使我已尝试在代码级别和每个容器的属性视图中设置这些参数。有时我得到一些我的jButton的Text标签没有显示,有时我得到不同大小的JDialog或JPanel,即使我在设计视图和代码级别都指定了它们。

有没有人对这种奇怪的行为有任何解释,或者有没有人遇到像Netbeans那样的问题?!​​

亲切的问候

2 个答案:

答案 0 :(得分:2)

您可能已通过内置FreeLayoutGridBagLayout来放置容器。关于内置的oprions和功能的具体问题是Netbeans Forums,但看起来像是对问题的肯定答案,

Java Desktop AplicationJSR296)是很长时间不支持的框架,我不知道原因而且不知道为什么(避免任何猜测)

Java Desktop Aplication基于Java AWT& Swing Components

考虑使用标准Swing JComponents制定的标准LayoutManagers,而不是重新发布un_supported Framework,关于Swing是否有当前(已标记的)Swing论坛

从准备好的选项中可能过于舒适了drag_and_drop Components,但是又打扰了自定义(非我用户的观点)

要获得良好的答案,您必须根据SSCCE

提出问题

答案 1 :(得分:0)

根据容器的当前LayoutManager规则调整组件大小。每个经理都有自己的一套规则来管理组件的大小。例如,如果您使用BorderLayout(enter link description here),并在中心部分添加组件,它将使用所有可用空间,忽略您的大小设置(包括最小/首选/最大大小)。但是,如果您使用GridBagLayout,则可以指定在组件之间分配可用空间的方式。

您的问题似乎是布局管理器问题。大多数情况下,默认管理器将不是您要使用的管理器。请务必根据需要设置正确的LayoutManager实例。如果您需要更多指导,可以在网上找到许多有关布局管理器的教程。 This one来自Oracle(之前由Sun撰写,当时它还拥有该东西)。