Java动作监听器

时间:2017-09-08 04:08:13

标签: java netbeans-8

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

1 个答案:

答案 0 :(得分:1)

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支票有些限制,您可以使用look at this example来确定连接4中是否有胜利条件,但这个想法是相同的。

如果您愿意,this example将这个想法应用于tic tac toe