Как добавить слушатель мышки в цикле? JavaSWT
Работая в JavaSWT, столкнулся с одной проблемой. Необходимо в цикле создать для нескольких Label слушателя мышки. При нажатии мышкой на Label этот Label должен менять свой фон на красный. Как сделать это? Проблема заключается в том, что я не знаю как сделать так, чтобы в цикле каждый слушатель запоминал номер Label, к которому он привязан, т.е. способ:
for (int i=0; i<10; i++)
LabelArray[i].addMouseListener(new MouseListener(){
...
public void mouseDown(MouseEvent arg0) {
LabelArray[i].setBackGroundColor(new Color(display, 255, 0, 0);
}
...
});
не работает, т.к. i является локальной переменной и то, что было в тот момент в переменной i слушатель не запоминает.
Ответы (1 шт):
А если попробовать пройти по списку передавая Label объект в метод который будет навешивать слушателя, зачем запоминать номер Label?
`for (Label label: labelArray) { addLinister(label); }
private void addLinister(Label label){ label.addMouseListener(new MouseListener(){ ... public void mouseDown(MouseEvent arg0) { label.setBackGroundColor(new Color(display, 255, 0, 0); } ... }); }`