jak wyświetlać dane wyjściowe konsoli w Javie JTextarea jeden po drugim w pętli, gdy uruchamiane jest działanie przycisku

Mam problem z tym, jak wyświetlić dane wyjściowe konsoli w Jtextarea. Udało mi się przekierować dane wyjściowe konsoli systemowej do JTextarea. Ale problem polega na tym, że w prawdziwej konsoli systemowej wyjście wyświetla się jeden po drugim (ustawiam funkcję Thread.sleep (), więc wynik pokaże się, powiedzmy, co pół sekundy). Ale w JTextarea wyjście pokaże się tylko raz, gdy pętla się zakończy, nie pokazuje się po kolei jak prawdziwa konsola systemowa.

pętla jest uruchamiana przyciskiem GUI. zobacz przykładowy kod poniżej. to tylko część kodu.

// Create a button.
but.setVerticalTextPosition(AbstractButton.CENTER);
but.setHorizontalTextPosition(AbstractButton.LEADING);
but.setActionCommand("publish");
but.addActionListener(this);

// Button action
public void actionPerformed(ActionEvent e) {
final JButton source = (JButton)e.getSource();
        if(source.equals(but)){
            for( int i = 0 ; i < 5 ; i++ ) {

                System.out.println( i );

                        // regular textarea output
                //JTextarea.append(Integer.toString(i));
                try {
                    Thread.sleep( 500 );
                } catch (InterruptedException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
            }

        }
}

jak widać, używam System.out.println (i) w pętli, ponieważ przekierowałem wyjście konsoli systemowej do JTextarea, więc wyjście jest w JTextarea.

problem polega na tym, jak wspomniałem powyżej, na prawdziwej konsoli, wyjście pokazuje jeden po drugim co 500 milisekund. Ale w przekierowanym Jtextarea wynik pokazuje raz, gdy cała pętla jest zakończona. Nie wiem, dlaczego tak jest. Chcę, aby dane wyjściowe pokazywały się jeden po drugim, jak również w przekierowanym JTextarea.

Czy ktoś może mi pomóc? Wielkie dzięki!

questionAnswers(2)

yourAnswerToTheQuestion