我正在制作一个数学闪卡应用程序,它需要20个答案,并且每次都会随机化问题。
我的问题:for循环不会等到按下按钮。我需要找到一种方法来等待ActionListener在再次循环之前执行。
请耐心等待我,因为我对Java很陌生。
这是我目前的代码:
for(int i = 0; i < 20; i++){
Random numberOne = new Random();
Random numberTwo = new Random();
firstNumberInt = numberOne.nextInt(12) + 1;
secondNumberInt = numberTwo.nextInt(12) + 1;
firstNumber = Integer.toString(firstNumberInt);
secondNumber = Integer.toString(secondNumberInt);
firstNumberPrint.setText(firstNumber);
secondNumberPrint.setText(secondNumber);
answerBtn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
String answerString = answerField.getText();
try {
int answer = Integer.parseInt(answerString);
} catch(NumberFormatException e){
error.setText("Number Cannot Be A Word");
}
}
});
}
答案 0 :(得分:1)
ActionListener
应该在循环之外,循环应该在循环之内。
不是相反。
answerBtn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
// Loop somewhere inside here
String answerString = answerField.getText();
try {
int answer = Integer.parseInt(answerString);
} catch(NumberFormatException e){
error.setText("Number Cannot Be A Word");
}
}
});
每次Component
交互时,都会调用ActionListener类中重写方法内的代码。