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

7

我正在使用Java编写程序。我有一个主要的JPanel,上面添加了两个JPanel和一个画布(Canvas)。我想在程序运行时调整Canvas的大小。当我最大化Canvas时,我希望它始终在其他组件的顶部。
如何为我的Canvas设置此属性?


1
我猜你在谈论将AWT组件Canvas与Swing组件混合使用,这就引出了一个问题,为什么要这样做?你确定你真的想这样做,并且了解其中的技巧和陷阱吗? - Hovercraft Full Of Eels
2个回答

22

您可以用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);

7

将您的主JPanel设置为JLayeredPane

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接