等待动作侦听器在循环中执行

时间:2015-08-02 23:19:33

标签: java for-loop jbutton actionlistener wait

我正在制作一个数学闪卡应用程序,它需要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");
                }
            }
        });
    }

1 个答案:

答案 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类中重写方法内的代码。