我使用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