我正在java中为个人学习目的制作一个tic tac toe游戏,并且我试图改变按钮的文本来自" - "到" O"单击按钮时。显然,我没有正确地理解它,一些提示将不胜感激。
当我运行代码时,我也会收到错误"在java.awt.AWTEventMulticaster.mouseEntered(未知来源)"
//includes graphics, button, and frame
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.*;
public static JButton [][] b = new JButton[3][3];
public static void playerMove(){
b[0][0].addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
String text = b[0][0].getText();
if(text.equals("-")){
b[0][0].setText("O");
//computerMove();
}
else{
System.out.println("Pick Again");
playerMove();
}
}
});
}
答案 0 :(得分:2)
您要做的是在程序的开头设置一个监听器,而不是在调用playerMove
时。像这样的东西
public static JButton [][] b = new JButton[3][3];
{ // Initialization code follows
b[0][0].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String text = b[0][0].getText();
if(text.equals("-")){
b[0][0].setText("O");
computerMove();
}
else{
System.out.println("Pick Again");
} } });
// And so on for the other 8 buttons.
}
当然你可能想要使用循环而不是重复类似的代码9次,但正如你所说,这是另一个问题。