基本上,我是一个新手,创建一个提供问题的程序,随机化正确答案的索引,然后在JFrame中显示问题。 我可以轻松执行我添加到此ActionListener方法的任何任务:
@Override
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("1")) {
System.out.println("whatever");
JOptionPane.showMessageDialog(null, "correct!",
"", JOptionPane.PLAIN_MESSAGE);
} else {
JOptionPane.showMessageDialog(null, "wrong!",
"", JOptionPane.PLAIN_MESSAGE);
}
}
程序从main方法中给出的setActionCommand获取“1”,但是我希望Listener返回main方法,当点击正确的单选按钮时,也会显示下一个问题。 主要方法如下:
while (therearestillquestionsleft) { /* do everything */ }
所以我需要程序在循环中等待,直到单击正确的答案。 我怎样才能做到这一点?
答案 0 :(得分:1)
正如其他人所指出的那样,在循环中等待并不是处理Java中等待GUI用户输入的方法。
您可以改为将程序重新设计为如下所示:
public static void main(String args[]) {
// [...]
nextQuestion();
}
public static void nextQuestion() {
if (questionsLeft) {
// "do everything", i.e. show next question
}
}
然后,您只需在nextQuestion()
内拨打ActionListener
。