堆叠 JPanel 和 JLabel

Stack JPanels and JLabels

我要感谢你到目前为止的帮助,现在我遇到了另一个问题。我可以很好地制作背景面板,也可以放置带有标签的面板。我想将一个带标签的面板堆叠在另一个带标签的面板上。或者将标签一个一个地堆叠起来。所以它将是背景,然后是背景之上带有标签的 JPanel,然后是第一个带标签的 JPanel 之上的另一个带标签的 JPanel。

我现在正在运行的代码的开头如下:

    // SWITCH 1
    switch1 = new JPanel();
    switch1.setLocation(24,348);
    switch1.setSize(55,83);
    switch1.setOpaque(false);
    background.add(switch1);

    sw1 = new JLabel();
    sw1.setIcon(SW1);
    sw1.setLocation(0,0);
    switch1.add(sw1);
    pack();

我想在这个上面添加一个带有 JLabel 的较小的 JPanel。那可能吗?我尝试了几种方法,但它不起作用,我试过的一种方法是:

    // SWITCH 2
    switch2 = new JPanel();
    switch2.setLocation(24,348); 
    switch2.setSize(45,73); 
    switch2.setOpaque(false);
    switch1.add(switch2);

    sw2 = new JLabel();
    sw2.setIcon(SW2);
    sw2.setLocation(0,0);
    switch2.add(sw2);
    pack();

那是行不通的。在此先感谢您帮助我解决这个问题。

Or Stack Labels one on top of another

我觉得你想要 OverlayLayout

您将面板的布局管理器设置为使用 OverlayLayout。然后将标签添加到面板。

标签的绘制顺序与您将它们添加到面板的顺序相反。

查看: 演示如何使用 OverlayLayout 的示例。