在我的代码的不同部分,我将运行类似的变体:
_grid[4][4].addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
moveBeginningPieceLeft(_square[4][11]);
refreshBoard();
}
});
唯一会改变的是_grid 的坐标。我之前尝试过做一些动作监听器,但 Eclipse 迫使我将整数设为最终值。我想知道是否很容易编写一个 addListener 方法,该方法使用它被调用的网格的值(_grid 是一个 JButtons 数组,_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();
}
});