Netbeans GUI 预览不同于运行时视图

Netbeans GUI preview is different from Runtime view

我正在使用 NetBeans 及其 GUI 编辑器开发一个简单的 Java 应用程序。 我坚持创建一个简单的对话框:运行有时它看起来与我设计的和在编辑器中预览的不同。 基本上,点击一个按钮就会出现我的对话框。

    private void jButton1MouseReleased(java.awt.event.MouseEvent evt) {                                       
       PanelDialogNuovoCliente pan = new PanelDialogNuovoCliente();
       JDialog jd=new JDialog();
       jd.setTitle("Nuovo Cliente");
       jd.setMinimumSize(new Dimension(500, 400));
       jd.setLocationRelativeTo(null);
       jd.add(pan);
       jd.setModal(true);
       jd.setVisible(true);   
    }

问题是当对话框出现时它有不同的外观,对话框 window 看起来更小并且不是所有的组件都适合它。

PanelDialogNuovoCliente 只是带有一些标签的 JPanelJTextField.

编辑器的 JPanel 属性中的最大、最小和首选大小均设置为 (500,400)。

JDialog 从我截取的代码中,最小大小设置为 (500,400)。

不幸的是我不能post截图,因为我需要至少 10 个声望但是当我 运行 应用程序对话框的 window 比我能看到的要小从 NetBean 的 GUI 编辑器中的预览按钮。

编辑:这是屏幕截图。运行时 JDialog 在左边,而它在 netbeans 中的预览在右边。我试图在 setVisible(true) 之前调用 JDialog#pack() 但没有成功。我为我的应用程序设置了 nimbus 外观。无论如何,如果我尝试使用 nimbus l&f 从 ide 预览设计,它看起来很完美,所以我认为这不是真正的问题

也许您遇到的情况与此类似post:

NetBeans (Java Swing): Set window size

我记得曾经历过类似的事情,并在 post 那里分享了我的经历。

编辑:(28/05/2015)

至于 clarify/elaborate,这里是我必须复制(并解决)我遇到的问题的步骤,可能 就是您遇到的问题。

问题复制步骤

  1. 使用“文件 >> 新项目...”创建一个新项目“=74=]
  2. 选择“Java >> Java 桌面应用程序
  3. 单击“下一步”按钮
  4. 项目名称:“TestApp”,然后是“Finish”按钮 - 然后您会在 Matisse 编辑器中打开两个选项卡, "TestView.java"(应用程序的主要 window)和 "TestAboutBox.java".
  5. 在 Matisse 编辑器中,我将 window 的大小调整为 大尺寸
  6. 然后我按Ctrl+F5到运行它
  7. 它 运行s 和 window 与 ide 中的大小相同。
  8. 关闭应用程序后,它会将数据写入我的 linux 系统上的“~/.TestApp/mainFrame.session.xml”文件 (我认为这相当于 windows 系统上的“%APPDATA%\CompanyName\TestApp\mainFrame.session.xml”)
  9. 查看 inside 这个“mainFrame.session.xml”文件,我看到有一个“mainFrame" 包含 xywidthheight 的 window.
  10. 回到 mattisse 编辑器,我将 window 的大小调整得更小。
  11. 然后我再次按Ctrl+F5到运行
  12. 然后应用程序的 window 以较大的尺寸显示(即,它没有 ide IDE 中指定的较小尺寸)

解决方法

我在这里尝试了 Tomas Pavek post 中建议的解决方法:

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

基本上,这些步骤:

  1. 删除这个“mainFrame.session.xml”文件(或包含它的文件夹)
  2. 然后 CTRL+F5 再次 运行 应用

...嘿嘿!它以 IDE 指定的正确尺寸显示。