Как добавить слушатель мышки в цикле? 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 шт):

Автор решения: pitstt

А если попробовать пройти по списку передавая 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); } ... }); }`

→ Ссылка