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

JMenuBar没有显示
EN

Stack Overflow用户
提问于 2021-07-05 12:18:35
回答 1查看 41关注 0票数 0

我试图创建一个菜单,但由于某些原因,它没有出现。谷歌的研究没有帮助。我把setVisible(true)放在最后,我把菜单添加到窗口,我还在酒吧中添加了Menupoint。然而,它仍然没有出现。

代码语言:javascript
复制
public MusicPlayerGUI(){
        setLayout(null);
        
        getContentPane().setBackground(Color.green);
        setTitle("MusicPlayer");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setSize(600,700);
        
        initComponent();
        add(bar);
        add(edit);
        add(show);
        add(createPlaylist);
        add(addSong);
        add(all);
        add(genre);
        add(rock);
        add(indie);
        add(playlists);
    
        setVisible(true);
    }
    
    public void initComponent() {
        //Menubar
        bar = new JMenuBar();
        setJMenuBar(bar);
        edit = new JMenu("Edit");
        bar.add(edit);
        show = new JMenu("Show");
        bar.add(show);
        createPlaylist = new JMenuItem("Create new Playlist");
        edit.add(createPlaylist);
        addSong = new JMenuItem("Add new Song");
        edit.add(addSong);
        all = new JMenuItem("All");
        show.add(all);
        genre = new JMenuItem("Genre");
        show.add(genre);
        rock = new JMenuItem("Rock");
        genre.add(rock);
        indie = new JMenuItem("Indie");
        genre.add(indie);
        playlists = new JMenuItem("Playlists");
        show.add(playlists);
        
        
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-05 13:52:07

在initComponent()中使用:

代码语言:javascript
复制
setJMenuBar(bar);

这是正确的。

但是,在构造函数中,您尝试再次将"bar“添加到框架中:

代码语言:javascript
复制
    initComponent();
    add(bar); // delete this line

它从框架的边缘区域移除脑膜。而且,由于您使用的是空布局,而且"bar“的大小默认为(0,0),所以没有什么可绘制的。

  1. 组件只能有一个父组件,不要尝试两次添加组件。

  1. 不使用空布局。Swing被设计用于布局管理器。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68256023

复制
相关文章

相似问题

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