添加新的JLabel我有2 JLabels
,我添加MouseListener
其中之一,它可以删除其他JLabel
并重新绘制它(当我点击其中一个,另外一个变化Image
) 这是我的代码,但它不起作用,它删除JLabel
,但不要再画一遍,我该怎么办?删除和MouseListener的
ImageIcon icon_next = new ImageIcon("next-icon.PNG");
...
next = new JLabel(icon_next);
...
next.addMouseListener(this);
player_img_lbl = new JLabel(player_img_ico[0]);
add(player_img_lbl, FlowLayout.CENTER);
....
@Override
public void mouseClicked(MouseEvent e) {
this.remove(player_img_lbl);
JLabel player_img_lbl = new JLabel(player_img_ico[1]);
add(player_img_lbl0,FlowLayout.CENTER);
repaint();
}
有另一种方式存在,这时候我点击JLabel
之一,它可以改变另一个的Image
?
player_img_lbl被用作一个场并作为局部变量。这不是一个好主意。 – Fortega
我的问题是,你为什么要删除标签? 您可以将可见性设置为false,或更新侦听器操作中标签的内容。对于这些你不必删除标签。删除和添加可能会破坏布局,这会混淆用户。 –