所以我有一个鼠标监听器,它连接到多个对象,如下所示:
for (int i = 0; i < Grids.size(); i++) {
Grids.get(i).addMouseListener(new GameMouseListener());
}
现在我遇到的问题是我需要知道哪些对象激活了处理程序
显然这不会起作用,因为 var "i" 没有在类中定义,只在前面的 for 循环中使用。如何使用处理程序知道单击了哪个特定对象。
public class GameMouseListener implements MouseListener {
@Override
public void mouseClicked(MouseEvent e) {
if (Grid.get(i).isSelected()) {
Grid.get(i).unselected();
} else {
Grid.get(i).selected();
}
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}