首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向JFrame添加JMenuBar

向JFrame添加JMenuBar
EN

Stack Overflow用户
提问于 2016-05-27 02:23:00
回答 2查看 423关注 0票数 0

我有这个代码,我想添加一个jMenuBar1到框架,但在执行过程中,我有一个空窗口

代码语言:javascript
复制
public hhh()  {
    // TODO Auto-generated constructor stub
    frame = new JFrame("A window");
    frame.setSize(500, 500);
    frame.setVisible(true);
    frame.setLayout(null);
    Container c=  frame.getContentPane();
    c.setLayout(null);
    jMenuBar1 = new JMenuBar();
    jMenuBar1.setBounds(10, 10, 100, 500);
    jMenuBar1.setBorder(new SoftBevelBorder(BevelBorder.RAISED));
    jMenuBar1.setFont(new Font("Calibri", 1, 24)); 
    jMenu1.setText("File");
    jMenuBar1.add(jMenu1);
    jMenu2.setText("Edit");
    jMenuBar1.add(jMenu2);
    frame.setJMenuBar(jMenuBar1);
    c.add(jMenuBar1);  
        frame.pack();         
}

请帮帮我

EN

回答 2

Stack Overflow用户

发布于 2016-05-27 02:31:58

ContainerJFrame的布局设置为null。因此,不能显示任何内容。只要不这样做,它应该会起作用的。事实上,永远不要将布局设置为null

票数 1
EN

Stack Overflow用户

发布于 2016-05-27 03:48:04

我想将jMenuBar1添加到frame

代码语言:javascript
复制
frame.setJMenuBar(jMenuBar1);
//c.add(jMenuBar1);  // get rid of this

可以使用setJMenuBar(...)将菜单栏添加到框架中方法是正确的。

但是,您还将菜单栏添加到内容窗格,这是不正确的。去掉这句话。

一个组件只能有一个父项。因此,菜单栏将从框架中删除并添加到内容窗格中。但是内容窗格使用的是空布局,并且菜单栏的大小是(0,0),因此没有什么可显示的。

所以:

  1. 使用setJMenuBar(..)将菜单栏添加到框架中仅限方法。
  2. 将其他组件添加到框架的内容窗格中,但内容窗格应使用布局管理器,而不是空布局。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37468407

复制
相关文章

相似问题

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