Java:将Component设置在另一个之上

saj*_*jad 6 java swing jpanel

我正在用java编写程序.我有一个主要的JPanel,它有两个JPanel和一个Canvas.我的目标是在运行程序时调整Canvas的大小.当我最大化Canvas时,我希望它始终位于另一个组件之上.
如何为Canvas设置此属性?

sst*_*dal 20

您可以使用JLayeredPanel替换主JPanel.通过分层面板,您可以指定某些子组件应该位于其他子组件之上.

即:

    JLayeredPane pane = new JLayeredPane();

    JLabel ontop = new JLabel("On top");
    JLabel behind = new JLabel("Behind");

    pane.add(ontop, 2, 0);
    pane.add(behind, 1, 0);
Run Code Online (Sandbox Code Playgroud)


use*_*041 5

使您的主 JPanel 成为JLayeredPane

然后您可以设置其他组件的层,setLayer(Component c, int layer)从而允许它们重叠。