将菜单栏添加到JFrame

时间:2015-03-15 14:50:44

标签: java jframe menubar jmenu

我有以下源代码,我只是不知道为什么我的菜单/菜单不会在JFrame上显示,我对编程有点新鲜

public class drawingApp {
    public static void main(String[] args) {

        JFrame frame = new JFrame("DrawingApp");
        frame.setSize(600,800);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
        frame.setLocationRelativeTo(null);

        JMenuBar mb = new JMenuBar();
        JMenu menu1 = new JMenu("Colour");
        mb.add(menu1);
        JMenu menu2 = new JMenu("Size");
        mb.add(menu2);

        frame.setJMenuBar(mb);

    }
}

2 个答案:

答案 0 :(得分:1)

我不能100%确定为什么JMenu不会出现,但可能是因为JMenu&#39中没有任何内容; s因此它们不会被渲染。

所以这就是你创建JMenuBar Menu而不是JMenuItems的错误。这是您创建JMenuBar

的方法
JFrame myframe = new JFrame();
JMenuBar menubar = new JMenuBar();
JMenu menu = new JMenu("size");
JMenuItem size = new JMenuItem("size");
menu.add(size);
menubar.add(menu);
myframe.setJMenuBar(menubar);

我希望这会有所帮助:)

答案 1 :(得分:1)

在框架设置可见后添加菜单栏。因此,首先渲染帧,然后添加菜单栏。尝试:

frame.setJMenubar(mb);
frame.validate();
frame.repaint();

这应该可以解决问题。

相关问题