Anzeigen der Konsolenausgabe in Java JTextarea nacheinander in einer Schleife, wenn eine Tastenaktion ausgelöst wird

Ich habe ein Problem mit der Anzeige von Konsolenausgaben in Jtextarea one be one. Ich habe die Systemkonsolenausgabe erfolgreich in JTextarea umgeleitet. Das Problem ist jedoch, dass in der realen Systemkonsole die Ausgabe nacheinander angezeigt wird (ich habe eine Thread.sleep () - Funktion festgelegt, sodass das Ergebnis beispielsweise alle halben Sekunden angezeigt wird). In JTextarea wird die Ausgabe jedoch nur einmal angezeigt, wenn die Schleife beendet ist. Sie wird nicht einzeln angezeigt, wie in der realen Systemkonsole.

Die Schleife wird über eine GUI-Schaltfläche ausgelöst. Bitte beachten Sie den folgenden Beispielcode. Dies ist nur ein Teil des Codes.

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

        }
}

Wie Sie sehen können, verwende ich System.out.println (i) in der Schleife, da ich die Ausgabe der Systemkonsole in JTextarea umgeleitet habe, sodass die Ausgabe in JTextarea erfolgt.

Das Problem ist, wie ich oben erwähnte, in der realen Konsole, dass die Ausgabe alle 500 Millisekunden nacheinander angezeigt wird. In umgeleiteten Jtextarea wird das Ergebnis jedoch einmal angezeigt, wenn die gesamte Schleife abgeschlossen ist. Ich weiß nicht, warum das so ist. Ich möchte, dass die Ausgabe auch einzeln im umgeleiteten JText-Bereich angezeigt wird.

Kann mir bitte jemand helfen? Danke vielmals!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage