使用Java进行简单的井字游戏。
我有一个名为GameHelpers
的班级。该类应包含有用的游戏方法。游戏发生在另一个班级。
GameHelpers
中的方法是ResetGame()
。此方法应该将所有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[]
是游戏主要类TicTacToe
中的一组JButton。
此方法以前位于游戏的主要类TicTacToe
中。但是现在它处于不同的类中,它无法到达TicTacToe
类中的按钮并操纵它们。
我在TicTacToe
中创建了get和set方法,但是如何从GameHelpers
激活它们?
如何在GameHelpers
中使用该方法?
答案 0 :(得分:4)
您可以获取通过ActionEvent的getSource()
方法推送的源按钮。
所以例如:
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,程序仍然有效。
修改强>
您在评论中说明:
为什么修剪()东西?
我认为你有一个正在进行的井字游戏,如果是这样,你不想在已经显示X或O文本的JButton上添加“X”。如果你给JButton一个空格" "
用于文本,trim()
将删除任何前导或尾随空格,并将文本更改为""
,你就会知道它可以接受新文本,“X”或“O”。如果您不需要它,请不要使用它。