Java:将一个组件置于另一个组件之上

Java:将一个组件置于另一个组件之上,java,swing,jpanel,Java,Swing,Jpanel,我正在用java编写一个程序。我有一个主JPanel,其中添加了两个JPanel和一个画布。我的目标是在运行程序时调整画布的大小。当我最大化画布时,我希望它始终位于其他组件的顶部。 如何为画布设置此属性?将主JPanel设置为a 然后,您可以使用setLayer(组件c,int层)设置其他组件的层,从而允许它们重叠。您可以使用JLayeredPanel替换主JPanel。分层面板将允许您指定某些子组件应分层在其他子组件之上 即: 我假设您正在谈论将AWT组件画布与Swing组件混合,这就引出了一

我正在用java编写一个程序。我有一个主JPanel,其中添加了两个JPanel和一个画布。我的目标是在运行程序时调整画布的大小。当我最大化画布时,我希望它始终位于其他组件的顶部。
如何为画布设置此属性?

将主JPanel设置为a


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

您可以使用JLayeredPanel替换主JPanel。分层面板将允许您指定某些子组件应分层在其他子组件之上

即:


我假设您正在谈论将AWT组件画布与Swing组件混合,这就引出了一个问题,为什么?你确定你真的想这么做吗?你知道其中的技巧和陷阱吗?
    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);