for(int j=0;j<4;j++) { final int index = j; answerButtons[index].addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { i++; next.setEnabled(true); if (answerButtons[index].getText().equals(rightanswer)) { right++; score.setText(right + "/" + i); show.setText("correct!"); answerButtons[index].setBackground(Color.green); } else { show.setText("wrong"); score.setText(right + "/" + i); answerButtons[index].setBackground(Color.pink); } rightanswer = getAnswer(i); enabled(false); next.setEnabled(true); }为什么下一个题的时候不能选择了
时间: 2024-01-17 20:05:25 浏览: 153
根据提供的代码,你在每个答案按钮的 ActionListener 中都有执行 `enabled(false)` 的操作,这会使得所有的答案按钮都被禁用(即不能选择)。因此,在进入下一题的时候,你需要将答案按钮重新启用,可以在下一题按钮的 ActionListener 中添加如下代码:
```
next.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// 答案按钮重新启用
for (int j = 0; j < 4; j++) {
answerButtons[j].setEnabled(true);
answerButtons[j].setBackground(null); // 将按钮背景色还原
}
// 其他逻辑代码
// ...
}
});
```
这样,在进入下一题时,所有的答案按钮就会被重新启用。
相关问题
for (int j = 0; j < 4; j++) { final int index = j; answerButtons[index].addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { rightanswer =getAnswer(i); i++; next.setEnabled(true); if (answerButtons[index].getText().equals(rightanswer)) { right++; score.setText(right + "/" + i); show.setText("correct!"); answerButtons[index].setBackground(Color.green); } else { show.setText("wrong"); score.setText(right + "/" + i); answerButtons[index].setBackground(Color.pink); } enabled(false); rightanswer =getAnswer(i); next.setEnabled(true); } }); }
这段代码是一个循环语句,它为每个答案按钮添加了一个监听器。当用户点击答案按钮时,监听器会执行其中的代码块。具体来说,这段代码的功能是:
1. 获取当前题目的正确答案,将其赋值给`rightanswer`变量。
2. 将题目序号`i`加1,表示用户已经回答了一道题目。
3. 激活下一题按钮。
4. 如果用户回答的答案与正确答案相同,则将`right`变量加1,表示用户回答正确;同时,更新得分和提示信息,并将答案按钮的背景色设置为绿色。
5. 如果用户回答的答案与正确答案不同,则更新得分和提示信息,并将答案按钮的背景色设置为粉色。
6. 禁用所有答案按钮。
7. 获取下一道题目的正确答案,将其赋值给`rightanswer`变量。
8. 激活下一题按钮。
希望这个解释能够帮助您更好地理解这段代码。
for (int j = 0; j < 4; j++) {// the action of click on every answer button. final int index = j; answerButtons[index].addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { rightanswer = getAnswer(i); i++; next.setEnabled(true); if (answerButtons[index].getText().equals(rightanswer)) { right++; score.setText(right + "/" + i); show.setText("correct!"); answerButtons[index].setBackground(Color.green);// if it is true, it will turns green. } else { show.setText("wrong"); score.setText(right + "/" + i); answerButtons[index].setBackground(Color.pink); } enabled(false);// users can't click on the other button instead of they click on the next // button. rightanswer = getAnswer(i);// refresh the answer. next.setEnabled(true); } }); }怎么让选择错误答案之后正确答案变绿
在这段代码中,如果用户选择了错误的答案,程序会将这个答案按钮的背景色设为粉色。如果用户选择了正确的答案,程序会将这个答案按钮的背景色设为绿色。如果想让选择错误答案之后正确答案变绿,可以将这两个操作交换一下位置,即将 `answerButtons[index].setBackground(Color.pink);` 和 `answerButtons[index].setBackground(Color.green);` 的位置互换一下。这样,如果用户选择了错误答案,程序会先将这个答案按钮的背景色设为粉色,然后在处理完正确答案的相关逻辑后,再将正确答案的按钮的背景色设为绿色。
阅读全文