0

基本上,我是一个新手,正在创建一个程序,它给出问题、随机化正确答案的索引,然后在 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 */ }

所以我需要程序在循环中等待,直到点击正确的答案。我怎样才能做到这一点?

4

1 回答 1

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.

于 2013-04-23T20:45:10.280 回答