以下是我要编辑的代码:
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个,因此解释了为什么布局为{{1 }}
我需要更改布局吗?
答案 0 :(得分:2)
删除/添加组件到布局太昂贵了。 根据我的理解,您只想提交图片:
只添加一个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);
}
答案 1 :(得分:0)
如果有多个标签,例如label1
,label2
,label3
等,请说明。并且您希望将它们设置在标签bbo1
的位置。然后可以通过获取标签bbo1
的位置并将其设置为所有其他标签来完成。
例如
label1.setLocation(bbo1.getLocation());
label2.setLocation(bbo1.getLocation());
label3.setLocation(bbo1.getLocation());