2009-12-19 136 views
7

这让我疯狂。当我在设计模式中为我的窗口设置适当的大小时,它会忽略这个大小,并在编译和运行时使用其他的东西。即使强硬我设置minimumSize和preferredSize它只是忽略了这个...为什么?我怎样才能设置我自己的大小?NetBeans(Java Swing):设置窗口大小

+0

你是通过拖动鼠标来做到这一点,或者你正在设置一个属性? – 2009-12-19 17:34:42

回答

6

即使你已经设置的大小与minimumSizepreferredSize,您可以根据设定的尺寸已经忘记调用Window.pack()在摇摆将调整组件(和它的所有子组件)。

在您设置了所有首选尺寸后,您可以在窗口中(或任何构建窗口)调用它。

或者,您可以使用Component.setSize()方法,但它可以使用comes with some caveats

+0

你能解释一下这个打包电话()必须完成的地方吗? – 2011-03-17 09:03:22

+0

当然,应该在UI组件的所有布局(设置布局,大小和位置)完成后调用'pack()'。这取决于你的布局代码的位置(通常在构造函数中)。 – Spoike 2011-03-18 06:10:41

1

您是否检查过您是否确实设置了JFrame或包含的JPanel的大小?

你试过setSize

0

我在使用netbeans ide时发现自己处于类似的情况。我有以下线的读操作,这有助于:

http://forums.netbeans.org/ptopic28011.html

好像Swing应用程序框架是在您的家目录中的子文件夹中保存应用程序的窗口大小(适用于Windows,“应用程序数据”文件夹,对于Linux,在你的“〜/”home文件夹中)。

例如,对于我的应用程序'CrapApp',swing将一些最后窗口大小的信息保存到子文件夹“〜/ .CrapApp /”中,并保存到一个名为“mainFrame.session.xml”的文件中。

所以无论我如何在设计器中重新调整窗口大小,运行时似乎都忽略了它,而是从此子文件夹中的首选项加载窗口大小。

所以我的解决办法是删除保存的设置子文件夹,例如,在我的情况,“RM -rf〜/ .CrapApp /”

然后问题消失,我可以重新大小内设计师和运行与这个现在可见的重新调整大小的窗口的应用程序。

这让我想知道是什么引发了这个问题。我注意到,只需在netbeans ide中运行应用程序并关闭它就不会生成子文件夹。

经过一番修改我的应用程序后,我注意到以下动作触发了这个“〜/ .CrapApp /”子文件夹的生成。

  1. 将我的应用程序的“帮助>>关于”
  2. 出现
  3. 退出应用

而现在的“〜/关于对话框中单击“关闭”按钮。 CrapApp /“子文件夹重新出现。这个帮助/关于对话框是由netbeans ide自动生成的,所以我没有真正修补它,但是这似乎是我的案例中的罪魁祸首。

也许它可能是NetBeans IDE中的一个错误,我使用的是一个稍微旧的版本(v6.8),这似乎大致来自您的原始帖子的时代。