したがって、次のように複数のオブジェクトにアタッチされたマウスリスナーがあります。
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) {
}