首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JMenuBar未显示

JMenuBar未显示
EN

Stack Overflow用户
提问于 2012-05-27 11:51:14
回答 3查看 2.7K关注 0票数 1

我正在尝试让我的JMenuBar在图形用户界面中显示,但是它只是在顶部显示为一条1像素线。

这是我的代码。

代码语言:javascript
复制
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);
}

有没有人能帮我弄清楚出了什么问题。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-27 11:54:09

您需要将JMenuJMenuItem添加到JMenuBar。您还需要在方法的末尾显示图形用户界面之前执行pack()setVisible(true); ...

代码语言:javascript
复制
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
}
票数 5
EN

Stack Overflow用户

发布于 2012-05-27 11:54:20

在将所有组件添加到顶层窗口之后,您应该仅调用setVisible(true) 。此外,不要忘记使用布局管理器,让这些管理器和组件的preferredSize设置组件的大小,并且不要忘记调用pack()

票数 3
EN

Stack Overflow用户

发布于 2016-04-07 01:43:43

在调用set visible(true)之前调用repaint(),这永远不会失败。

代码语言:javascript
复制
 setJMenuBar(menuBar);
 menuBar.add(jMenuItem);
 repaint(); //then
 setVisible(true); //Assured NEVER FAILS
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10771520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档