1 回答
TA贡献1818条经验 获得超7个赞
我快速设置了一个沙箱,并使用 java 版本 11 和语言级别 11 让它工作。
您不能在 ActionListener 中传递x或内部。y
for (int y = 0; y < 8; y++) {
for (int x = 0; x < 8; x++) {
int tx = x;
int ty = y;
buttons[y][x] = new JButton();
board.add(buttons[y][x]);
buttons[y][x].setBorderPainted(false);
//color buttons in the checkerboard pattern
if ((y + x) % 2 != 0) {
buttons[y][x].setBackground(new Color(201, 166, 113));
} else {
buttons[y][x].setBackground(Color.WHITE);
}
//Add event listener
ActionListener buttonListener = new ActionListener() {
public void actionPerformed(ActionEvent e) {
pressedButton(ty, tx);
}
};
buttons[y][x].addActionListener(buttonListener);
}
}
请注意添加的tx和ty使其起作用。问候
添加回答
举报