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

NetBeans(Java Swing):设置窗口大小,java,swing,netbeans,Java,Swing,Netbeans,这让我快发疯了。当我在设计模式下为我的窗口设置一个合适的大小时,它会忽略这个大小,并在编译和运行时使用其他东西。即使很难,我设置了最小尺寸和首选尺寸,但它忽略了这一点。。。为什么?如何设置我自己的大小?您是否检查过是否确实设置了JFrame或包含的JPanel的大小 您是否尝试过setSize?即使您已使用minimumSize和preferredSize设置大小,您可能忘记调用哪个Swing将根据设置的大小调整组件(及其所有子组件)的大小 设置好所有首选尺寸后,您可以在窗口中(或在构建窗口的任

这让我快发疯了。当我在设计模式下为我的窗口设置一个合适的大小时,它会忽略这个大小,并在编译和运行时使用其他东西。即使很难,我设置了最小尺寸和首选尺寸,但它忽略了这一点。。。为什么?如何设置我自己的大小?

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


您是否尝试过
setSize

即使您已使用
minimumSize
preferredSize
设置大小,您可能忘记调用哪个Swing将根据设置的大小调整组件(及其所有子组件)的大小

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


或者,您也可以使用该方法,但不能使用它。

在使用netbeans ide时,我发现自己也遇到了类似的情况。我阅读了以下线索,这很有帮助:

似乎swing应用程序框架正在将应用程序的窗口大小保存在主目录的子文件夹中(对于Windows,“应用程序数据”文件夹,对于Linux,保存在“~/”主文件夹中)

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

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

所以我的解决方案是删除这个保留的设置子文件夹,例如,在我的例子中,“rm-rf~/.CrapApp/”

然后问题消失了,我可以在designer中重新调整大小,并在这个重新调整大小的窗口可见的情况下运行应用程序

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

在对我的应用程序进行了一些修补之后,我注意到以下操作触发了“~/.CrapApp/”子文件夹的生成

  • 转到我的应用程序的“帮助>>关于”
  • 单击出现的“关于”对话框中的“关闭”按钮
  • 退出应用程序
  • 现在“~/.CrapApp/”子文件夹重新出现。这个“帮助/关于”对话框是由netbeans ide自动生成的,所以我并没有真正修改它,但这似乎是我的问题的罪魁祸首


    也许这可能是netbeans ide中的一个bug,我使用的是一个有点旧的版本(v6.8),它似乎也与您最初发布的文章的时代差不多。

    您是通过鼠标拖动来完成此操作,还是设置了一个属性?您能解释一下对pack()的调用必须在哪里完成吗?当然,
    pack()
    应在完成UI组件的所有布局(设置布局、大小和位置)后调用。这取决于布局代码的位置(通常在构造函数中)。