2012-11-26 47 views
0

我有一個內部繪製面板的JDesktopPane。 我也在頂部有一個幫助菜單。如何將面板發送到內部框架的背面?

當它繪製面板時,它將它繪製在菜單欄頂部,阻止菜單欄。

如何將面板發送回去,解除菜單欄的封鎖?

這裏是構造函數。

public Desktop() { 
    Toolkit toolkit = Toolkit.getDefaultToolkit(); 
    Dimension scrnsize = toolkit.getScreenSize(); 
    desktop.setBackground(Color.orange); 
    desktopFrame.setContentPane(desktop); 
    desktopFrame.addKeyListener(this); 
    desktopFrame.setVisible(true); 
    desktopFrame.setSize(scrnsize); 

    desktopBackground = new JPanel(); 
    desktopBackground.setLocation(30 , 10); 
    desktopBackground.setSize(100, 110); 
    desktopBackground.setBackground(Color.red); 

    setJMenuBar(menuBar);  

    menuBar.add(startButton);  
    startButton.add(programsButton);   
    programsButton.add(terminalButton); 
    desktopFrame.setJMenuBar(menuBar); 

    terminalButton.addActionListener(this); 

    desktop.add(menuBar); 
    desktop.add(desktopBackground); 
} 

回答

2

菜單欄甚至不應位於內部面板或組件可以阻止它的位置。如果這是一個JFrame應用程序,那麼JMenuBar應該通過它的setJMenuBar(...)方法直接添加到JFrame中。然後,可以將JDesktopPane添加到JFrame BorderLayout.CENTER中,並將JInternalFrame添加到JDesktopPane中。這樣就沒有機會覆蓋菜單欄。

+1

也許在代碼的其他地方不小心'frame.setContentPane()'而不是'frame.add()'? – trashgod

相關問題