Java 如何从不同的类操作类中的变量?

Java 如何从不同的类操作类中的变量?,java,class,Java,Class,正在用Java编写一个简单的tic-tac-toe游戏 我有一个名为GameHelpers的类。这个类应该包含游戏的有用方法。游戏发生在另一个班级 GameHelpers中的一个方法是ResetGame。此方法应将tic tac趾板上所有9个按钮上的文本设置为空白,再次将其设置为启用,并将变量设置为1 这是它的代码: public class GameHelpers { public void resetGame(){ for(int i=0;i<3;i++){

正在用Java编写一个简单的tic-tac-toe游戏

我有一个名为GameHelpers的类。这个类应该包含游戏的有用方法。游戏发生在另一个班级

GameHelpers中的一个方法是ResetGame。此方法应将tic tac趾板上所有9个按钮上的文本设置为空白,再次将其设置为启用,并将变量设置为1

这是它的代码:

public class GameHelpers {

    public void resetGame(){
        for(int i=0;i<3;i++){
            for(int j=0;j<3;j++){
                buttons[i][j].setEnabled(true);
                buttons[i][j].setText("");
                count = 1;
            }
        }
    }

}
buttons[]是游戏主类TictaToe中的一组JButton

这种方法以前是在游戏的主要类Tictatcoe中使用的。但是现在它在另一个类中,它无法到达TicTacToe类中的按钮并操纵它们

我在Tictatoe中创建了get和set方法,但是如何从GameHelpers激活它们呢


如何使GameHelpers中的方法工作?

您可以获得通过ActionEvent的getSource方法按下的source按钮

例如:

public void actionPerformed(ActionEvenet e){
     JButton sourceBtn = (JButton) e.getSource();
     String text = sourceBtn.getText().trim(); 
     if (text.isEmpty()) {   // see if x/o assigned yet
       sourceBtn.setText(....);  / "X" or "O" depending on logic
     }
}
这样,所有9个按钮都可以共享完全相同的ActionListener,程序仍然可以工作

编辑 您在评论中声明:

为什么要修剪呢


我想这里有一个tic-tac-toe游戏,如果是这样的话,你不想在已经显示了X或O文本的JButton中添加X。如果您可能给JButton一个文本空格,trim将去掉任何前导或尾随空格,并将文本更改为,您将知道它可以接受新文本,X或O。如果您不需要它,则不要使用它。

您可以获得通过ActionEvent的getSource方法按下的source按钮

例如:

public void actionPerformed(ActionEvenet e){
     JButton sourceBtn = (JButton) e.getSource();
     String text = sourceBtn.getText().trim(); 
     if (text.isEmpty()) {   // see if x/o assigned yet
       sourceBtn.setText(....);  / "X" or "O" depending on logic
     }
}
这样,所有9个按钮都可以共享完全相同的ActionListener,程序仍然可以工作

编辑 您在评论中声明:

为什么要修剪呢


我想这里有一个tic-tac-toe游戏,如果是这样的话,你不想在已经显示了X或O文本的JButton中添加X。如果您可能给JButton一个文本空格,修剪将去掉任何前导或尾随空格,并将文本更改为,您将知道它可以接受新文本,X或O。如果您不需要它,就不要使用它。

谢谢,它起作用了!但我只写了:jbuttonsourcebutton=jbuttone.getSource;sourceButton.setTextX;为什么要修剪?谢谢,它成功了!但我只写了:jbuttonsourcebutton=jbuttone.getSource;sourceButton.setTextX;为什么要修剪呢?