Duvida JTextArea

3 respostas
W

Na classe abaixo, gostaria de mostar a JTextArea a mensagem cfe. linha abaixo, durante a execução do arquivo teste.bat, mas só aparece no JtextArea depois que termina de executar o arquivo, daí aparecem todas as 94 linhas de uma vez.
O arquivo teste.bat copia 94 arquivos de um diretorio para outro e gostaria de listar no JTextArea os arquivos copiados enauqnto copia.

Alguém sabe como resolver?

saidaTexto.append("Aguarde copiando arquivo: “ + arquivo + " 94 " + line + newline);

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
import java.lang.Long; 
import java.awt.BorderLayout; 
import java.lang.Exception; 
import java.io.BufferedReader; 
import java.io.InputStreamReader; 
import java.lang.String; 
import javax.swing.JTextArea; 


public class JTextoSaida extends JPanel implements ActionListener { 
private JButton BCopiar; 
public String line = null; 
public JTextArea saidaTexto; 
public String newline = "\n"; 
private Frame frame; 
private Panel panel; 
private Panel panel1; 
JScrollPane scroller; 


public JTextoSaida(String title) { 

frame = new Frame(title); 
BCopiar = new JButton("Iniciar Cópia" ); 
saidaTexto = new JTextArea(100, 120); 
saidaTexto.setMargin(new Insets(20, 20, 20, 20)); 
saidaTexto.setEditable(false); 
saidaTexto.setCursor(null); 
panel = new Panel(); 


} 

public void Copiar (){ 

int arquivo = 1; 
Process process = null; 
try { 



process = Runtime.getRuntime().getRuntime() 
.exec("\\teste\\java\\teste.bat"); 
BufferedReader in = 
new BufferedReader(new InputStreamReader(process.getInputStream())); 

while ((line = in.readLine()) != null) { 
saidaTexto.append("Aguarde copiando arquivo: “ + arquivo + " 94 " + line + newline); 
arquivo = (arquivo + 1); 
System.out.println(arquivo); 
} 
}catch (Exception e) { 
System.out.println("Problema na copia: " +e.toString()); 
} 

JOptionPane.showMessageDialog(null, "Copia finalizada", " OK PARA SAIR", 
JOptionPane.INFORMATION_MESSAGE ); 

System.exit( 0 ); // terminate the application 

} 


public void actionPerformed(ActionEvent evt) { 
BCopiar.setEnabled(false); 
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); 
Copiar(); 
} 

public void createAndShowGUI() { 

frame.setSize(400,400); 
BCopiar.setActionCommand("copiar"); 
BCopiar.addActionListener(this); 
saidaTexto.setMargin(new Insets(10,10, 10,10)); 
saidaTexto.setCursor(null); 
panel.setSize(100,100); 

panel.setLayout(new BorderLayout()); 
panel.add(BCopiar, BorderLayout.NORTH); 
frame.add(panel, BorderLayout.CENTER); 

panel.add(new JScrollPane(saidaTexto), BorderLayout.CENTER); 
frame.setVisible(true); 

} 



public static void main(String[] args) { 

JTextoSaida texto = new JTextoSaida("TESTE"); 
texto.createAndShowGUI(); 
} 



}

3 Respostas

fmeyer

Por favor, antes de perguntar, leia este topico: http://www.guj.com.br/posts/list/15477.java

use as tags [ code] [ /code] para formatar melhor seu codigo

Mauricio_Linhares

Você já tentou dar uns System.out.println() dentro do “while” pra ver se ele tá rodando?

W

Sim, está rodando, os arquivos são copiados e a mensagem aparece tudo de uma vez no JTextArea, após sair do Loop do while

Criado 25 de junho de 2005
Ultima resposta 26 de jun. de 2005
Respostas 3
Participantes 3