¿Por qué mis códigos no pudieron actualizar JTextArea en tiempo real?

Hola, soy nuevo en la programación Java. Estoy tratando de ejecutar un comando externo desde Java y luego mostrar la salida del símbolo del sistema en JTextArea in real time. Ese programa externo generará 1 línea de salida cada segundo y luego saldrá después de 10 segundos.

Los siguientes son mis códigos Java:

original codes have been deleted to save space after reading Kumra's answer

Cuando ejecuto program.exe manualmente en la ventana del símbolo del sistema, la salida se actualiza en tiempo real de esta manera:

<some warning message of the .exe program
    which should not affect the output of the program> // shown at t=0
output line 1   //shown at t=1
output line 2   //shown at t=2
output line 3   //shown at t=3
output line 4   //shown at t=4
output line 5   //shown at t=5
output line 6   //shown at t=6
output line 7   //shown at t=7
output line 8   //shown at t=8
output line 9   //shown at t=9
output line 10  //shown at t=10

Done. //shown at t=10.

Cuando ejecuto mi programa Java en lo anterior, pensé que JTextArea se actualizará en tiempo real para mostrar la salida del símbolo del sistema. Lamentablemente, no está funcionando. El resultado real es así:

<some warning message of the .exe program
    which should not affect the output of the program> // shown at t=0

Desde t = 0 hasta t = 10, el JTextArea se atasca en la salida anterior. En t = 11, de repente muestra la salida completa:

<some warning message of the .exe program
    which should not affect the output of the program> // shown at t=0
output line 1   //shown at t=11
output line 2   //shown at t=11
output line 3   //shown at t=11
output line 4   //shown at t=11
output line 5   //shown at t=11
output line 6   //shown at t=11
output line 7   //shown at t=11
output line 8   //shown at t=11
output line 9   //shown at t=11
output line 10  //shown at t=11

Done. //shown at t=11

¿Puedo saber qué hay de malo con mis códigos? ¿Alguien puede enseñarme cómo mostrar la salida del símbolo del sistema en JTextArea in real time? Gracias.

EDITAR 1:
he editado los códigos basados ​​en la respuesta de Kumar pero todavía no funciona. A continuación se encuentran los últimos códigos.

MyUI.java

public class MyUI extends JFrame
implements ActionListener, KeyListener, ChangeListener, WindowListener
{
    ...
    private JTextArea output;

    public void showMessage(String message)
    {
        output.append(message + "\n");
        output.setCaretPosition(output.getDocument().getLength());
    }
    ...

    public void actionPerformed(final ActionEvent e)
    {
        SwingUtilities.invokeLater(new Runnable()
        {
            public void run()
            {
                if (xxxxx)
                {
                    myThreadInstance = new MyThread(xx,xxx,xx,xx,xx);
                    myThreadInstance.start();
                }
            }
        }
    }

}

MyThread.java

public class MyThread extends Thread
{
    ...
    public MyUI myFrame;
    ...

    public void run
    {
        try
        {
            String command = "program.exe arg1 arg2 arg3 arg4";

            List<String> items = Arrays.asList(command.split("\\s+"));

            builder = new ProcessBuilder(items);
            builder.redirectErrorStream(true);

            process = builder.start();

            input = new BufferedReader(new InputStreamReader(process.getInputStream()));

            String inputline = null;
            while ((inputline = input.readLine()) != null)
            {
                myFrame.showMessage(inputline);
            }
        }
        catch(){}
        finally{}
    }
}
Respuesta 1

Así que estoy a punto de desarrollar una aplicación web Spring MVC. Pero hay una excepción cada vez que implemento la aplicación que dice: java.net.URISyntaxException: Carácter ilegal en la ruta en el índice 11: archivo: / E: / ...

Estoy usando Apache Beam con Maven y en el pom.xml la dependencia es <dependency> <groupId> org.apache.beam </groupId> <artifactId> beam-sdks-java-core </artifactId> ...

Por ejemplo, si tengo: connection.prepareStatement ("SELECT * FROM users WHERE status =? AND otherAttribute =?"); Donde en algunos casos podría querer un estado específico ...

Tengo una barra de pestañas con 5 elementos, 4 de estos abren un nuevo fragmento, mientras que 1 de ellos debería abrir una nueva actividad, no puedo entender cómo abrir esta nueva actividad. Necesito el tercer elemento para abrir una nueva actividad (...