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);
}
4

1 に答える 1

2

メニュー バーは、内部パネルまたはコンポーネントによってブロックされる可能性のある場所に配置することさえできません。setJMenuBar(...)これが JFrame アプリケーションの場合、JMenuBar はそのメソッドを介して JFrame に直接追加する必要があります。次に、JDesktopPane を JFrame BorderLayout.CENTER に追加し、JInternalFrames を JDesktopPane に追加します。この方法では、メニュー バーを覆う可能性はありません。

于 2012-11-26T05:20:18.190 に答える