Java 我想用另一个JLabel替换一个JLabel,但将其保持在相同的位置,这可能吗?

Java 我想用另一个JLabel替换一个JLabel,但将其保持在相同的位置,这可能吗?,java,jframe,jpanel,jlabel,Java,Jframe,Jpanel,Jlabel,以下是我试图编辑的代码: game = new JPanel(); ImageIcon bbb = new ImageIcon("bbb.gif"); JLabel bbbl = new JLabel(bbb); ImageIcon bbbH = new ImageIcon("bbbH.gif"); JLabel bbbHl = new JLabel(bbbH); game.setLayout(ne

以下是我试图编辑的代码:

        game = new JPanel(); 
        ImageIcon bbb = new ImageIcon("bbb.gif");
        JLabel bbbl = new JLabel(bbb);
        ImageIcon bbbH = new ImageIcon("bbbH.gif");
        JLabel bbbHl = new JLabel(bbbH);
        game.setLayout(new GridLayout(2,2));
        game.add(bbol);
        game.add(bbgl);
        game.add(bbgrl);
        game.add(bbbl);
        if (flashed == 1)
        {
        game.remove(bbol);
        game.add(bboHl);
        }
        else
        {
        }
我希望JLabel
bboHl
与JLabel
bbol
处于相同的位置,但在此之后还有其他JLabel,更确切地说是3个,因此解释了为什么布局是
(GridLayout(2,2))


是否需要更改布局?

将组件删除/添加到布局成本太高。 据我所知,你只想拍一张照片:

只添加一个JLabel,并在其上使用设置图标来更改图像

    game = new JPanel();
    ImageIcon bbb = new ImageIcon("bbb.gif");
    ImageIcon bbbH = new ImageIcon("bbbH.gif");
    JLabel bbbl = new JLabel(bbb);

    game.setLayout(new GridLayout(2, 2));
    game.add(bbol);
    game.add(bbgl);
    game.add(bbgrl);
    game.add(bbbl);
    if (flashed == 1) {
        bbbl.setIcon(bbbH);
    } else {
        bbbl.setIcon(bbb);
    }

假设有多个标签,如
label1
label2
label3
等,并且您希望将它们设置在标签
bbo1
的位置。然后可以通过获取标签
bbo1
的位置并将其设置为所有其他标签来完成

比如说

 label1.setLocation(bbo1.getLocation());
 label2.setLocation(bbo1.getLocation());
 label3.setLocation(bbo1.getLocation());