Как отобразить вывод консоли в Java JTextarea один за другим в цикле, когда запускается действие кнопки

У меня возникла проблема с тем, как отобразить вывод консоли в Jtextarea один за другим. Я успешно перенаправил вывод системной консоли в JTextarea. Но проблема в том, что в реальной системной консоли выходные данные отображаются один за другим (я установил функцию Thread.sleep (), поэтому результат будет отображаться, скажем, каждые пол секунды). Но в JTextarea вывод будет отображаться только один раз, когда цикл завершится.покажите один за другим, как настоящая системная консоль.

цикл запускается кнопкой GUI. пожалуйста, посмотрите пример кода ниже. это всего лишь часть кода.

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

        }
}

как вы можете видеть, я использую System.out.println (i) в цикле, потому что я перенаправил вывод системной консоли в JTextarea, поэтому вывод находится в JTextarea.

проблема, как я упоминал выше, в реальной консоли выводит вывод по одному каждые 500 миллисекунд. Но в перенаправленной Jtextarea результат показывает один раз, когда весь цикл завершен. Я неНе знаю, почему это так. Я хочу, чтобы вывод отображался по одному также в перенаправленной JTextarea.

Кто-нибудь может мне помочь, пожалуйста. Большое спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос