Java 动作侦听器

Java action listener

我正在使用 Netbeans 在 Java 上制作井字游戏。我有一个带按钮的 3x3 电路板布局。当您单击按钮时,该按钮被禁用并且字母 "X" 或 "O" 显示为该按钮的标签。当我测试我的游戏时连续获得 3 "X's"。在我点击另一个按钮之前,它不会说我赢了。因此,在我单击另一个按钮之前,它不会回应我赢了。我应该改用鼠标释放事件吗?

gameOver 应该最后调用,因为在您更新按钮之前您不会知道是否达到获胜条件

你也可以通过使用动作的来源来大大减少代码

public class Listener implements ActionListener{
    @Override
    public void actionPerformed(ActionEvent ae) {
        Object source = ae.getSource();
        JButton btn = (JButton)source;
        btn.setEnabled(false);
        btn.setFont(new Font("Courier New", Font.BOLD, 56));
        counter++;
        if(counter % 2 == 0 && counter < 10){
            btn.setText("O");
            gameText.setText("X's Turn!");                    
        } else {                       
            btn.setText("X");
            gameText.setText("O's Turn!");
        }           
        gameOver();
    }
}

你的 gameOver 检查有点受限,你可以有一个 用于确定连接 4 中是否有获胜条件,但想法是一样的。

如果您愿意,this example 将此想法应用于井字游戏