【问题标题】:Swing components not displaying [closed]摆动组件不显示[关闭]
【发布时间】:2012-11-06 08:02:05
【问题描述】:

我在使用 Java swing 时曾多次遇到此问题。我运行程序,除了窗口什么都没有显示;即使您调整一个像素的大小,一切都会完美呈现。谁能告诉我为什么会这样?
谢谢。

【问题讨论】:

  • 请发布一些代码向我们展示问题。
  • 如需更好的帮助,请尽快发帖SSCCE
  • 调用 setVisible AFTER你已经完成将所有组件添加到框架
  • “请告诉我为什么会发生这种情况?” 因为您从未阅读过本教程(我怀疑)并且总是做错(似乎很明显)。我应该输入它作为答案吗?
  • @AndrewThompson 请这样做我可以投票

标签: java swing user-interface


【解决方案1】:

始终以invokeLater() 开头,使用layout managerpack() 框架并设置setVisible()最后

EventQueue.invokeLater(new Runnable() {

    @Override
    public void run() {
        JFrame f = new JFrame();
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel panel = new JPanel(new GridLayout(0, 1));
        panel.add(...);
        panel.add(...);
        f.add(new JScrollPane(panel));
        f.pack();
        f.setVisible(true);
    }
});

【讨论】:

    【解决方案2】:

    确保以下代码将出现在 GUI 代码的末尾。

    frame.setSize(500,500); // size of the frame

    frame.setVisible(true); // 使框架窗口可见

    【讨论】:

    • 不必调用setSizepack 是调整框架大小的首选方法(setSize 在一些较小的情况下很有用;))
    猜你喜欢
    • 1970-01-01
    • 2014-08-27
    • 2012-04-23
    • 1970-01-01
    • 2020-12-04
    • 2018-12-03
    • 2013-04-20
    • 1970-01-01
    • 2012-01-21
    相关资源
    最近更新 更多