У меня проблема с добавлением MouseListeners
к установленному количеству Jlabels
, которые создаются внутри цикла. Программе, которую я создаю, необходимо изменить значок JLabel
, когда пользователь наводит курсор на метку.
Я создал цикл for для инициализации метки, объявленной глобально, установки границы, добавления прослушивателя мыши и добавления метки на панель.
JLabel label;
for(int i = 0; i < 20; i++)
{
label = new JLabel();
label.setBorder(new LineBorder(Color.BLACK));
label.setMouseListener(this);
panel.add(label);
}
container.add(panel);
Тогда в моем слушателе мыши у меня есть
public void mouseEntered(MouseEvent e)
{
if(e.getSource().equals(label))
{
label.setIcon(image);
}
}
Кажется, это работает нормально, он добавляет 20 меток к рамке и добавляет рамку, но по какой-то причине прослушиватель действий активируется только на последней добавленной метке. Может кто-нибудь сказать мне, почему это происходит или указать мне правильное направление, пожалуйста?
Любая помощь приветствуется.