JMenu弹出窗口有时只能工作

时间:2014-11-30 23:24:11

标签: java swing

我遇到了JMenu弹出窗口的问题。它有时只能起作用。有时我根本不会得到一个java弹出窗口。有时我的文件和编辑选项完全丢失。这就是我的代码。

import javax.swing.*;

public class menu {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        JFrame f = new JFrame();
        f.setVisible(true);
        f.setSize(400,400);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setLocationRelativeTo(null);

        JMenuBar mb = new JMenuBar();

        JMenu file = new JMenu ("File");
        mb.add(file);
        JMenu edit = new JMenu("Edit");
        mb.add(edit);

        f.setJMenuBar(mb);
    }

}

1 个答案:

答案 0 :(得分:3)

只有在初始化核心UI后才在setVisible上调用JFrame ...

JFrame f = new JFrame();
// Don't call this here...
//f.setVisible(true);
f.setSize(400,400);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setLocationRelativeTo(null);

JMenuBar mb = new JMenuBar();

JMenu file = new JMenu ("File");
mb.add(file);
JMenu edit = new JMenu("Edit");
mb.add(edit);

f.setJMenuBar(mb);
// Call it here
f.setVisible(true);

此外,请确保仅在事件调度线程的上下文中创建/更新UI,有关详细信息,请参阅Initial Threads