Adding Menubar to JFrame

泪湿孤枕 提交于 2019-12-11 11:14:28

问题


I have the following source code and i just dont get why my menubar/menu wont show on the JFrame, im somewhat new to programming

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);

    }
}

回答1:


I am not 100 % sure why the JMenu's don't show up but it's probably because there are no items in the JMenu's and therefore they are not rendered.

So this is what was going wrong you created the JMenuBar the Menu's but not the JMenuItems. This is how you create a 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);

I hope this helps :)




回答2:


You add the menubar after your frame has been set visible. Due to this, the frame is first rendered and afterwards the menubar is added. Try:

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

this should solve the problem.



来源:https://stackoverflow.com/questions/29061969/adding-menubar-to-jframe

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!