Java-setVisible(true)对GUI没有影响

我使用Netbeans GUI Builder创建了一个GUI(称为ParameterUI),现在我想创建它的一个实例并显示它.但是,使用

ParameterUI gui = new ParameterUI();
gui.setVisible(true);

不会出现任何窗口…
测试表明,执行这些命令后,gui.isVisible()返回true,但是gui.isValid()为false.调用gui.revalidate()也无效.

在ParameterUI类中,构造函数方法由Netbeans生成,并且很简单

public class ParameterUI extends javax.swing.JPanel {
    public ParameterUI() {
        initComponents();
    }
}

initComponents只是每个jPanel等放置位置的清单.

奇怪的是,当我在http://netbeans.org/kb/docs/java/gui-functionality.html的教程中制作了一个实践GUI时,尽管没有main方法,但该GUI被设置为主要类,并且GUI本身是一致的.

不幸的是,我是GUI的新手(由于没有时间学习如何制作合适的手工GUI,所以我正在使用构建器),但是有人可以告诉我如何使GUI可见吗?如果需要,我可以提供更多代码…

编辑:我试过

JFrame window = new JFrame();
ParameterUI gui = new ParameterUI();
window.setContentPane(gui);
window.pack();
window.setVisible(true);

阅读了有关JFrames的简短教程,但似乎没有任何改变…

解决方法:

您正在使用JFrame还是使用Netbeans创建了桌面应用程序?因为如果您创建了一个桌面应用程序,Netbeans会使用它自己的类,并且我也遇到了很多问题……因此,我建议您使用JFrame.无论如何,您可以尝试以下操作以查看UI是否启动:

SwingUtilities.invokeLater(new Runnable() {
           public void run()
           {
               ParameterUI gui = new ParameterUI();
               gui.setVisible(true);
           }
       });

由于要扩展JPanel,因此需要将面板放在JFrame上才能显示.为此,在netbeans中,只需创建一个新的JFrame(右键单击包并选择“ New JFrame”.现在),返回面板,在左边距(在Project,Files等下),您应该有一个项目单击名为“ Inspector”,您应该会看到组件的树状视图.右键单击要显示的JPanel,然后选择“复制”.返回刚刚创建的JFrame,找到“ Inspector”按钮从左边缘单击它,然后在顶部应该有一个名为“ [JFrame]”的项目.右键单击该项目并选择粘贴.现在您应该看到已创建的面板.

要查看面板,然后只需放置JFrame的名称而不是ParameterUI

上一篇:使用NetBeans调试PHP?


下一篇:如何用Java中的另一个JPanel替换两个JPanel之一?