Java GUI菜单栏不显示

Java GUI菜单栏不显示,java,swing,jmenu,Java,Swing,Jmenu,知道菜单栏菜单栏不显示的原因吗?我觉得一切都很好 import java.util.*; import java.awt.*; import javax.swing.*; import java.awt.event.*; class mySticky extends JFrame implements ActionListener{ //weStart! JFrame frame = new JFrame("Sticky Note"); JMenuBar menuB

知道菜单栏
菜单栏
不显示的原因吗?我觉得一切都很好

import java.util.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

class mySticky extends JFrame implements ActionListener{

    //weStart!

    JFrame frame = new JFrame("Sticky Note");
    JMenuBar menuBar = new JMenuBar();

    JMenu noteMenu = new JMenu("Note");
    JMenuItem newNote = new JMenuItem("New Note");
    JMenuItem open = new JMenuItem("Open");
    JMenuItem saveAs = new JMenuItem("Save As");
    JMenuItem save = new JMenuItem("Save");

    //Constructor

    public mySticky(){

        setSize(400,300);
        setLocation(500,250);
        setTitle("Sticky Note");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new BorderLayout());

        menuBar.add(noteMenu);

        noteMenu.add(newNote);
        noteMenu.add(open);
        noteMenu.add(saveAs);
        noteMenu.add(save);
        frame.setJMenuBar(menuBar);            
    }

    public void actionPerformed (ActionEvent e){           

    }


    public static void main (String [] args ){

        mySticky sticky = new mySticky ();
        sticky.setVisible(true);

    }
}

您将菜单栏添加到
框架
,该框架从未添加到任何UI。替换

frame.setJMenuBar(menuBar);

您的菜单栏将可见。或者您也应该将
frame
添加到UI中。不知道你想达到什么目的


您应该将主方法的代码封装在
可运行的
中,并在EDT上执行它(例如使用
EventQueue.invokeLater

而不是
frame.setJMenuBar(menuBar)
,在构造函数中尝试
这个.setJMenuBar(menuBar)

完全正确。我现在明白了。恐怕我不知道什么是
EventQueue.invokeLater
?所有Swing操作都应该在一个特殊的线程上执行。例如,可以使用EventQueue类中的方法在该线程上执行这些操作。有关过帐+1的更多信息,请参阅
setJMenuBar(menuBar);