当我运行我的代码时,菜单显示为垂直而不是水平,我该如何更改?

时间:2018-04-13 17:35:47

标签: java jmenu

Screenshot of the error

import javax.swing.*;

public class Task1 {
    public static void main (String[] args) {

        Task1 a = new Task1();
    }

    public Task1() {
        JFrame frame = new JFrame();
        frame.setVisible(true);
        frame.setSize(400,500);

        JMenuBar menuBar = new JMenuBar();
        JMenu file = new JMenu("File");
        JMenu help = new JMenu("help");

        menuBar.add(help);
        menuBar.add(file);
        frame.add(menuBar);

        JMenuItem load = new JMenuItem("Load");
        JMenuItem save = new JMenuItem("Save");
        JMenuItem exit = new JMenuItem("Exit");
        JMenuItem about = new JMenuItem ("About");

        help.add(about);
        file.add(exit);
        file.add(save);
        file.add(load);


    }
}

这段代码出于某种原因,当我运行菜单时,菜单显示为垂直而不是水平,我不知道为什么。我知道这是一个基本的东西,但我不能想到一个不会导致错误的解决方案。

1 个答案:

答案 0 :(得分:3)

这是因为您使用的是JFrame.add()而不是JFrame.setMenuBar()。前者将组件(JMenuBar是)添加到contentPane的内部JFrame。从这个改变您的代码:

frame.add(menuBar);

对此:

frame.setMenuBar(menuBar);