Удалите и добавьте новый JLabel в mouseListener - PullRequest
1 голос
/ 29 июня 2011

У меня есть 2 JLabels, и я добавляю MouseListener к одному из них, который может удалить другие JLabel и нарисовать их снова (когда я нажимаю на один из них, Image другого меняется) это мой код, но он не работает, он удаляет JLabel, но не рисуете его снова, что мне делать?

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 другого?

1 Ответ

4 голосов
/ 29 июня 2011

Вызовите revalidate () перед repaint ()

...