我正在尝试让我的JMenuBar在图形用户界面中显示,但是它只是在顶部显示为一条1像素线。
这是我的代码。
public LibraryView() {
setBounds(100,100,640,480);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
JMenuBar b1 = new JMenuBar();
JMenu m1 = new JMenu("Test");
JMenuItem i1 = new JMenuItem("Item1");
this.setJMenuBar(b1);
}有没有人能帮我弄清楚出了什么问题。
发布于 2012-05-27 11:54:09
您需要将JMenu和JMenuItem添加到JMenuBar。您还需要在方法的末尾显示图形用户界面之前执行pack()和setVisible(true); ...
public LibraryView() {
setBounds(100,100,640,480);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
JMenuBar b1 = new JMenuBar();
JMenu m1 = new JMenu("Test");
JMenuItem i1 = new JMenuItem("Item1");
m1.add(i1); // ADDED
b1.add(m1); // ADDED
this.setJMenuBar(b1);
pack(); // ADDED
setVisible(true); // MOVED
}发布于 2012-05-27 11:54:20
在将所有组件添加到顶层窗口之后,您应该仅调用setVisible(true) 。此外,不要忘记使用布局管理器,让这些管理器和组件的preferredSize设置组件的大小,并且不要忘记调用pack()。
发布于 2016-04-07 01:43:43
在调用set visible(true)之前调用repaint(),这永远不会失败。
setJMenuBar(menuBar);
menuBar.add(jMenuItem);
repaint(); //then
setVisible(true); //Assured NEVER FAILShttps://stackoverflow.com/questions/10771520
复制相似问题