cómo mostrar la salida de la consola en java JTextarea uno por uno en un bucle cuando se activa la acción del botón

Tengo un problema con la forma de mostrar la salida de la consola en Jtextarea uno ser uno. He redirigido con éxito la salida de la consola del sistema a JTextarea. Pero el problema es que en la consola del sistema real, la salida se muestra una por una (yo configuro una función Thread.sleep (), por lo que el resultado se mostrará, por ejemplo, cada medio segundo). Pero en JTextarea, la salida se mostrará solo una vez cuando finalice el ciclo, no se muestra uno por uno como la consola del sistema real.

el bucle es activado por un botón GUI. por favor vea el código de muestra a continuación. Esto es sólo una parte del código.

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

        }
}

Como puede ver, uso System.out.println (i) en el bucle, porque redirigí la salida de la consola del sistema a JTextarea, por lo que la salida está en JTextarea.

El problema es que, como mencioné anteriormente, en la consola real, el resultado se muestra uno por uno cada 500 milisegundos. Pero en Jtextarea redirigido, el resultado se muestra una vez cuando se realiza todo el ciclo. No sé por qué es así. Quiero que la salida se muestre una por una también en JTextarea redirigida.

Alguien puede ayudarme por favor. ¡Muchas gracias!

Respuestas a la pregunta(2)

Su respuesta a la pregunta