当前位置: 首页 > 面试题库 >

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

鄢开诚
2023-03-14
问题内容

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



 类似资料:
  • 问题内容: 在一个简短的方法中,我使用setVisible(false)隐藏了一个JFrame。然后,截屏并使用setVisible(true)还原JFrame。 在再次显示之后,窗口应该显示与以前不同的图片(可以说是截图的一部分)。 问题是,在调用setVisible(true)之后,将窗口与旧内容一起闪烁一秒钟,然后再调用paintComponent并绘制更新的状态。 我可能会以丑陋的方式解决

  • 问题内容: 我正在使用一些注释来动态设置类中字段的值。由于我想执行此操作,而不管它是公共的,受保护的还是私有的,因此每次调用该方法之前,我都会在Field对象上进行调用。我的问题是,电话会议对该领域本身会产生什么样的影响? 更具体地说,假设它是一个私有字段,并且这组代码调用。如果代码中的其他位置要通过反射来检索相同的字段,那么该字段是否已经可以访问?还是和方法每次都返回Field对象的新实例? 我

  • 我是开发android应用程序的新手 我正在开发一款音乐播放器,希望从音频文件的元数据中获取歌曲名称、艺术家、专辑名称、专辑艺术 我使用了,但当有800首歌曲时,速度会很慢,有些文件返回null,而其他音乐播放器可以检索这些信息。 然后我使用获取歌曲名称、艺术家、专辑名称和媒体商店。音频专辑。外部内容_URI获取专辑艺术。 是否有任何uri可同时获取(歌曲名称、艺术家、专辑名称、专辑艺术) 因为我

  • 此外,如果我可以动态地改变它,那么我需要这样做的迹象是什么?任何特定的异常或场景指出需要或? 谢了!

  • 我使用JCIFS SMB上传SMB文件时遇到性能问题。问题与属性并使用修复了该问题。 现在的问题是,在这种情况下,我将在使用因为它对我来说必须是静态属性?我有许多使用相同配置的不同环境。 属性文档(链接)说: 如果此属性为true,则将禁用基于域的DFS引用。默认值为false。此属性在非域环境中可能很重要,在非域环境中,通常在JCIFS首次尝试解析路径时运行的基于域的DFS引用将超时,从而导致长