2015-03-15 5 views
1

У меня есть следующий исходный код, и я просто не понимаю, почему мой MenuBar/меню не будет отображен на JFrame, им несколько новых для программированияДобавление Menubar в 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); 

    } 
} 

ответ

1

Я не 100% уверен, почему JMenu 's не появляются, но это, вероятно, потому, что нет элементов в JMenu и поэтому они не отображаются.

Так вот что случилось Неправильно вы создали JMenuBarMenu, но не 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

Вы добавляете строку меню после того, как ваш кадр был установлен виден. Из-за этого сначала создается кадр, а затем добавляется строка меню. Попытка:

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

это должно решить проблему.

Смежные вопросы