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);
}
}
这段代码出于某种原因,当我运行菜单时,菜单显示为垂直而不是水平,我不知道为什么。我知道这是一个基本的东西,但我不能想到一个不会导致错误的解决方案。
答案 0 :(得分:3)
这是因为您使用的是JFrame.add()
而不是JFrame.setMenuBar()
。前者将组件(JMenuBar
是)添加到contentPane
的内部JFrame
。从这个改变您的代码:
frame.add(menuBar);
对此:
frame.setMenuBar(menuBar);