java - java 中的 TicTacToe 游戏有问题吗?将 getText().equals() 与 jButtons 一起使用

标签 java class methods

不确定为什么这段代码没有按预期工作,希望你能帮我弄清楚。我正在使用 jbuttons 制作一系列教程中的井字棋游戏。我的主类中有一个方法,每次单击按钮时都会“检查”。使用打印语句,我发现每次单击按钮时我的方法都会运行,但是 getText().equals("_") 条件无法正常运行。

此代码是我的 tictactoe.java 的一部分,并且一切正常。每个按钮都会复制该事件 9 次。

public void button1ActionPerformed(ActionEvent e) {
    if(button1.getText().equals("")){
        if(Main.playerTurn==true){
            button1.setText("X");
            Main.checkforwin();
            Main.playerTurn = false;
        }else{
            button1.setText("O");
            Main.checkforwin();
            Main.playerTurn = true;
        }
    }
}

此代码是我的 main.java 的一部分,其中包含 checkforwin 方法。对于玩家 1 和计算机(玩家 2)的井字棋中每个可能的获胜,都会重复多次检查获胜代码块。

public class Main {

public static boolean playerTurn = true;
public static boolean playerWon = false;    
public static boolean computerWon = false;

public static tictactoe board = new tictactoe();

public static void checkforwin(){
System.out.println("testing1");
    //horizontal row 1
    if(board.button1.getText().equals("X")){
        System.out.println("testing2");
        if(board.button2.getText().equals("X")){
            if(board.button3.getText().equals("X")){
                playerWon = true;
                computerWon = false;
                System.out.println("Player 1 won");
            }
        }
    }

}

每次单击按钮时,该方法都会输出testing1,但它永远不会在条件内打印。

任何帮助或建议将不胜感激,谢谢!

最佳答案

我的猜测是它没有拾取按钮文本更改 - 在按钮文本更改之后(button1.setText("X");)等 - 您需要再次将其添加到面板中,所以 panel.add(button1); 或它们存储的任何内容

关于java - java 中的 TicTacToe 游戏有问题吗?将 getText().equals() 与 jButtons 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10797506/

相关文章:

java - JMeter - 菜单不工作和日志文件中的错误

java - 从 jre 中的 rt.jar 中删除未使用的类

java - 使用 Jaxws 在 Soap Response 中添加额外的标签或元素

Java 3D游戏编程

python - 属性错误 : 'set' object has no attribute 'items'

javascript - 页面中无法识别 JS 方法

ruby - 如何获取类中包含的模块

python - 在 Python 中创建一个重写父类(super class)方法的子类

php - 获取 php 方法注释

C# 嵌套 Try Catch 语句或方法?