在循环中等待动作侦听器执行
waiting for an action listener to execute while in a loop
我正在制作一个数学抽认卡应用程序,它需要 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");
}
}
});
}
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 class 中重写方法中的代码。
我正在制作一个数学抽认卡应用程序,它需要 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");
}
}
});
}
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 class 中重写方法中的代码。