繁体   English   中英

无法将JMenuBar添加到扩展JFrame

[英]Trouble adding JMenuBar to extended JFrame

我的Main类扩展了JFrame ,由于某种原因,我无法正确显示MenuBar和项目。 有添加菜单栏的特殊方法吗?

public class Main extends JFrame
{
// DRIVER
public static void main(String[] args) 
{
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                Main window = new Main();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });

}

private JMenuBar menuBar; 

private JMenu menu,
          menuFile;

private JMenuItem menuItemNew,
              menuItemExit;
...

// CONSTRUCTOR
public Main()
{

    initializeWindow();
    initializeMenu();
}

private void initializeWindow()
{
    setTitle(TITLE + " " + VERSION);
    setSize(WINDOW_WIDTH, WINDOW_HEIGHT);
    setBackground(Color.DARK_GRAY);
    setVisible(true);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    backgroundColor = new GradientBackground(WINDOW_WIDTH, WINDOW_HEIGHT);
}

private void initializeMenu()
{
    // Menubar
    menuBar = new JMenuBar();
    menuBar.setBounds(0, 0, WINDOW_WIDTH, 72);
    menuBar.setBackground(Color.LIGHT_GRAY);
    menuBar.setVisible(true);
    setJMenuBar(menuBar);

    // Menu title
    menu = new JMenu();
    menu.setForeground(Color.BLACK);
    menuBar.add(menu);



    // File Option
    menuFile = new JMenu("FILE");
    menuFile.setForeground(Color.BLACK);
    menuFile.setBackground(Color.DARK_GRAY);
    menuBar.add(menuFile);

    // New File
    menuItemNew = new JMenuItem("New");
    menuItemNew.setForeground(Color.BLACK);
    menuItemNew.setBackground(Color.DARK_GRAY);
    menuFile.add(menuItemNew);

    // New File
    menuItemExit = new JMenuItem("Exit");
    menuItemExit.setForeground(Color.BLACK);
    menuItemExit.setBackground(Color.DARK_GRAY);
    menuItemExit.setEnabled(true);
    menuFile.add(menuItemExit);

    getContentPane().add(menuBar);
} // END initializeMenu()
  • 我认为您正在寻找JFrame.setMenuBar而不是add(JMenuBar)

  • Java 5和更高版本没有必需的getContentPane()

  • 不要扩展JFrame ,将此Object创建为local variable

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM