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);
    }
}

プログラムは、メイン メソッドで指定された setActionCommand から「1」を取得しますが、正しいラジオ ボタンがクリックされると、次の質問も表示されるように、リスナーがメイン メソッドに戻るようにします。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 に答える