2016-06-09 96 views
-1

你有沒有人知道爲什麼我的JMenuBar menuBar沒有顯示出來? 我正在使用JFrameJPanelJMenuBar沒有顯示

我的課程擴展了JPanel並且有一個paint方法被繼承(已經用super.paint(g))。

我想顯示一些JLabelsJTextFieldsJMenuBar(我知道這不是它的目的)

這裏是我的代碼:

public void createMenuBar(){ 

    menuBar = new JMenuBar(); 
    menuBar.setBounds(0,0,1463,29); 
    menuBar.setLayout(null); 
    this.add(menuBar); 

    ipLbl = new JLabel("IP-Adresse:"); 
    ipLbl.setBounds(5,2,150,25); 
    ipLbl.setLabelFor(ip); 
    menuBar.add(ipLbl); 

    ip = new JTextField(); 
    ip.setBounds(150,2,100,25); 
    menuBar.add(ip); 
} 

我打電話創建JFrame後,這種方法,但在做setVisible(true)之前。

看:

public IceHockey(){ 

    try { 
     UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 
    } catch (Exception e){} 

    fenster = new JFrame("IceHockey"); 
    fenster.setSize(1479, 941); 
    fenster.setLayout(null); 
    fenster.addKeyListener(this); 
    fenster.addMouseListener(this); 
    fenster.setResizable(false); 
    fenster.setLocationRelativeTo(null); 

    fenster.setContentPane(this); 

    this.addKeyListener(this); 
    this.addMouseListener(this); 

    createMenuBar(); 

    fenster.setVisible(true); 
    fenster.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 

} 
+0

**別t使用空佈局!!! **。這已經在你之前的帖子中提到過了:http://stackoverflow.com/questions/36751366/some-swing-components-not-showing-on-jframe。注意建議。我們給他們一個理由。閱讀關於[如何使用菜單]的Swing教程(http://docs.oracle.com/javase/tutorial/uiswing/components/menu.html)作爲示例。該代碼還將告訴你如何更好地構建你的課堂。 – camickr

+0

camickr我知道,但這個程序只適用於我,甚至我的老師在學校告訴我們,我們可以使用null佈局。所以這取決於我使用的是什麼!此外,null佈局非常簡單易用! –

+0

'此外,null佈局非常簡單易用! ' - 不,不是。你完全不知道一個組件應該多大才能正確顯示。對隨機數進行硬編碼是浪費時間,並且只會在未來造成問題,尤其是在需要進行更改時。簡單的事情,如更改字體將導致問題。只是因爲你可以做點什麼並不意味着你應該這樣做。學習正確使用Swing!你甚至還沒有學過Swing的基礎知識(或者你不會問這個問題),所以你不知道什麼是或不是很容易。這只是來自經驗。 – camickr

回答

1

創建菜單欄後,我覺得你還是需要把它添加到您的JFrame。更改createMenuBar()返回JMenuBar的而不是無效的,那麼你可以寫:

fenster.setJMenuBar(createMenuBar()); 

我不清楚什麼是您的createMenuBar()代碼,但我猜測它不是fenster還是允許添加的東西。

+0

「this」是擴展的JPanel ^^ –

2

你可以,如果你想添加到JPanel的這個帖子有一個方法,您可以使用菜單欄與fenster.setJMenuBar(menuBar);

菜單欄添加到框架:

add JMenuBar to a JPanel?