NetBeans(Java Swing):设置窗口大小

7

这让我疯狂。当我在设计模式下设置适当的窗口大小时,编译和运行时它会忽略这个大小并使用其他大小。即使我设置了minimumSize和preferredSize,它也会忽略它们...为什么?我如何设置自己的大小?


你是通过鼠标拖动还是设置属性来完成这个操作的? - Martijn Courteaux
3个回答

7
即使您已经使用minimumSizepreferredSize设置了大小,您可能忘记调用Window.pack(),Swing会根据设置的大小调整组件(及其所有子组件)的大小。

在所有首选大小设置完成后,在窗口中调用它(或任何构建您窗口的内容)。

或者,您可以使用Component.setSize()方法,但是它会带来一些注意事项


请问您能否解释一下 pack() 方法的调用应该在哪里进行? - Réjôme
当你的UI组件的布局(设置布局、大小和位置)完成后,应该调用pack()。这取决于你的布局代码在哪里(通常在构造函数中)。 - Spoike

1
你有检查过是否真正设置了JFrame或包含的JPanel的大小吗?
你尝试过使用setSize吗?

0

我在使用NetBeans IDE时遇到了类似的情况。我阅读了以下帖子,对我有所帮助:

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

似乎Swing应用程序框架会在您的主目录下的一个子文件夹中保存应用程序窗口的大小(对于Windows来说是“Application Data”文件夹,对于Linux来说是您的“~ /”主文件夹)。
例如,对于我的应用程序'CrapApp',Swing保存了一些最后一个窗口大小信息到子文件夹“〜/ .CrapApp /”中,文件名为“mainFrame.session.xml”。
所以无论我如何在设计者内调整窗口大小,在运行时都似乎忽略了它,并从该子文件夹中的首选项加载窗口大小。
因此,我的解决办法是删除这个保留设置的子文件夹,例如,在我的情况下,“rm -rf ~/.CrapApp/”。
然后问题就解决了,我可以在设计者内调整大小并运行显示重新调整大小的窗口的应用程序。
这让我想知道是什么触发了这个问题。我注意到只要在NetBeans IDE中运行应用程序并关闭它,就不会生成这个子文件夹。
经过对我的应用程序进行一些试验,我注意到以下操作会触发生成“〜/ .CrapApp /”子文件夹。
  1. 进入我的应用程序的“帮助 >> 关于”
  2. 单击出现的关于对话框中的“关闭”按钮
  3. 退出应用程序

现在,“~/.CrapApp/”子文件夹重新出现了。这个帮助/关于对话框是由NetBeans IDE自动生成的,所以我没有真正地去调整它,但在我的情况下似乎是这个问题的罪魁祸首。

也许这可能是NetBeans IDE的一个错误,我正在使用一个相当旧的版本(v6.8),这似乎与您最初的帖子时代差不多。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接