问题
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