如何将面板发送到内部框架的背面?

时间:2012-11-26 05:10:34

标签: java swing background jframe menubar

我有一个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);
}

1 个答案:

答案 0 :(得分:2)

菜单栏甚至不应位于内部面板或组件可以阻止它的位置。如果这是一个JFrame应用程序,那么应该通过其setJMenuBar(...)方法将JMenuBar直接添加到JFrame。然后可以将JDesktopPane添加到JFrame BorderLayout.CENTER,并将JInternalFrame添加到JDesktopPane。这样就无法覆盖菜单栏。