【发布时间】:2012-10-31 05:49:01
【问题描述】:
这个tictactoe 程序是一个2 人游戏。在我开始编码之后,我制作的 GUI 是框架和按钮。实际上,我的程序正在使用这种编码。
private String letter= " ";
private int count= 0;
private void btn7ActionPerformed(java.awt.event.ActionEvent evt) {
count++;
if(count == 1 || count == 3 || count == 5 || count == 7 || count == 9){
letter = "X";
} else if(count == 2 || count == 4 || count == 6 || count == 8 || count == 10){
letter = "O";
}
if(evt.getSource() == btn1){
btn1.setText(letter);
} else if(evt.getSource() == btn2){
btn2.setText(letter);
} else if(evt.getSource() == btn3){
btn3.setText(letter);
} else if(evt.getSource() == btn4){
btn4.setText(letter);
} else if(evt.getSource() == btn5){
btn5.setText(letter);
} else if(evt.getSource() == btn6){
btn6.setText(letter);
} else if(evt.getSource() == btn7){
btn7.setText(letter);
} else if(evt.getSource() == btn8){
btn8.setText(letter);
} else if(evt.getSource() == btn9){
btn9.setText(letter);
}
}
private void btn1ActionPerformed(java.awt.event.ActionEvent evt) {
count++;
if(count == 1 || count == 3 || count == 5 || count == 7 || count == 9){
letter = "X";
} else if(count == 2 || count == 4 || count == 6 || count == 8 || count == 10){
letter = "O";
}
if(evt.getSource() == btn1){
btn1.setText(letter);
} else if(evt.getSource() == btn2){
btn2.setText(letter);
} else if(evt.getSource() == btn3){
btn3.setText(letter);
} else if(evt.getSource() == btn4){
btn4.setText(letter);
} else if(evt.getSource() == btn5){
btn5.setText(letter);
} else if(evt.getSource() == btn6){
btn6.setText(letter);
} else if(evt.getSource() == btn7){
btn7.setText(letter);
} else if(evt.getSource() == btn8){
btn8.setText(letter);
} else if(evt.getSource() == btn9){
btn9.setText(letter);
是的,它确实有效,但我对这些代码的问题是我需要将代码放在每个按钮中,例如button7,button1(这些只是我的按钮的例子)这是代码是按钮执行的操作。
我只希望每个按钮执行一个命令,并且我不想在每个按钮中复制粘贴,因为它们是相同的代码。我认为有一个代码可以做到这一点,你怎么看?请帮忙!
【问题讨论】:
-
创建单个
ActionListener,然后将其注册到所有按钮。然后使用event.getSource()识别按钮并相应地做其余的事情。 -
嗨!在我生成的代码中,我发现这一行 btn1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btn1ActionPerformed(evt); 我认为 java 已经自动生成了代码. 你觉得哪里不对?
标签: java swing debugging jbutton tic-tac-toe