我想用另一个 JLabel 替换 JLabel 但将其保持在同一位置,这可能吗?
I want to replace a JLabel with another JLabel but keep it in the same position, is this possible?
这是我要编辑的代码:
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 之后还有其他 JLabel,确切地说还有 3 个,因此解释了为什么布局是 (GridLayout(2,2))
我需要更改布局吗?
Removing/adding 布局组件太贵了。
据我了解,您只想切换图片:
仅添加一个 JLabel,并在其上使用 setIcon 来更改图像。
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());
这是我要编辑的代码:
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 之后还有其他 JLabel,确切地说还有 3 个,因此解释了为什么布局是 (GridLayout(2,2))
我需要更改布局吗?
Removing/adding 布局组件太贵了。 据我了解,您只想切换图片:
仅添加一个 JLabel,并在其上使用 setIcon 来更改图像。
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());