コードのさまざまな部分で、次の同様のバリアントを実行します。
_grid[4][4].addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
moveBeginningPieceLeft(_square[4][11]);
refreshBoard();
}
});
変更されるのは、_grid の座標だけです。アクションリスナーを作成する前に何かをしようとしましたが、Eclipseは整数を最終的にすることを強制していました。呼び出されているグリッドの値を使用する addListener メソッドを簡単に作成できるかどうか疑問に思っています (_grid は JButton の配列で、_square はスタックの配列です)。したがって、_grid[2][5] で addListener を呼び出した場合、_grid から座標 [2][5] を取得し、actionlistener の _square セクションに配置します。そう、
_grid[0][5].addListener();
と同じです
_grid[0][5].addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
moveBeginningPieceLeft(_square[0][5]);
refreshBoard();
}
});