Boas ppl,
Estou desenvolvendo uma app, que exporta dados, de ficheiros pra uma bd (sybase), e agora tenho de fazer um sistema de Logs, so q o log tem q ser mostrado no ecra ao utilizador em tempo de execuçao.
Uma hipotese é abrir um JFrame ou JPanel, o meu problema é que eu n sei como é q posso imprimir as msg’s de log num JPanel ou JFrame, sem adicionar mais nada.
Eu poderia utilizar Labels, mas n é essa a minha ideia.
Sera que alguem me pode dizer como e q eu posso fazer isso?
Atentamente
Graveyard
Eu fiz isso uma vez, talvez ajude :
import javax.swing.*;
import java.io.*;
public class JTextAreaOutputStream extends OutputStream {
private StringBuilder sb = new StringBuilder();
private JTextArea txt = new JTextArea();
public JTextAreaOutputStream(JTextArea txtArea) {
this.txt = txtArea;
}
public void flush() { }
public void close() { }
public void write(int b) throws IOException {
if (b == '\r') {
return;
}
if (b == '\n') {
txt.append(sb.toString());
sb.setLength(0);
}
sb.append((char)b);
}
}
Para usar :
JTextArea text_area = new JTextArea();
out = new PrintStream ( new JTextAreaOutputStream( txt_area ));
Ai so usar o out.println pra imprimir no JTextArea como vc imprime no terminal.
//Daniel
Bom…não entendi muito bem a sua dúvida… Mas se você quer utilizar um JFrame ou JPanel para mostrar os logs, adiciona um JTextArea no Panel e mostra os logs nela… Se você quer utilizar uma api que gerencie os logs, tem a LOG4J… que eu uso … ela gera um arquivo de logs, mas vc pode redirecionar a saida para sua tela , no caso no JTextArea…