不确定为什么这段代码没有按预期工作,希望你能帮我弄清楚。我正在使用 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/