como exibir a saída do console em java JTextarea um por um em um loop quando a ação do botão é acionada
Eu tenho um problema com a forma de exibir a saída do console no Jtextarea um ser um. Eu redirecionei com êxito a saída do console do sistema para o JTextarea. Mas o problema é que no console do sistema real, a saída aparece uma a uma (eu defino uma função Thread.sleep (), então o resultado aparecerá, digamos, a cada meio segundo). Mas no JTextarea a saída será mostrada apenas uma vez quando o loop terminar, ele não mostrará um por um como o console do sistema real.
o loop é acionado por um botão GUI. por favor, veja o código de amostra abaixo. isso é apenas parte do 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 você pode ver, eu uso System.out.println (i) no loop, porque eu redirecionei a saída do console do sistema para JTextarea, então a saída está em JTextarea.
O problema é, como eu mencionei acima, no console real, a saída mostra um por um a cada 500 milissegundos. Mas no Jtextarea redirecionado, o resultado mostra uma vez quando todo o loop é feito. Eu não sei porque é assim. Eu quero a saída para mostrar um por um, bem como JTextarea redirecionado.
Alguém pode me ajudar por favor. Muito Obrigado!