【问题标题】:Java : set a Component on top of anotherJava:在另一个之上设置一个组件
【发布时间】:2011-07-03 02:49:22
【问题描述】:

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

【问题讨论】:

  • 我假设您正在谈论将 AWT 组件 Canvas 与 Swing 组件混合,这引出了一个问题,为什么?你确定你真的想要这样做,并且你知道其中的技巧和陷阱吗?

标签: java swing jpanel


【解决方案1】:

您可以将主 JPanel 替换为 JLayeredPanel。分层面板可让您指定某些子组件应位于其他子组件之上。

即:

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

【讨论】:

    【解决方案2】:

    将您的主 JPanel 设为 JLayeredPane

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

    【讨论】:

      猜你喜欢
      • 2011-03-19
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      • 2014-08-26
      • 2011-03-31
      • 1970-01-01
      • 2019-03-09
      • 1970-01-01
      相关资源
      最近更新 更多