import java.io.OutputStream;
import java.io.PrintStream;
import javax.swing.text.JTextComponent;
import javax.swing.SwingUtilities;
public class MyPrintStream extends PrintStream {
private JTextComponent text;
private StringBuffer sb = new StringBuffer();
public MyPrintStream(OutputStream out, JTextComponent text) {
super(out);
this.text = text;
}
/**
* 在这里重截,所有的打印方法都要调用的方法
*/
public void write(byte[] buf, int off, int len) {
final String message = new String(buf, off, len);
SwingUtilities.invokeLater(new Runnable(){
public void run(){
sb.append(message+"\n");
text.setText(sb.toString());
}
});
}
}
————————————————————————————————————————————————
在组件java类中
定义用到的组件jTextField1
private javax.swing.text.JTextComponent jTextField1;
在构造方法里面
initComponents();
MyPrintStream mps = new MyPrintStream(System.out, jTextField1);
System.setOut(mps);
System.setErr(mps);
这样就能把系统输出 和错误信息 在jTextField1中显示了
本文介绍了一种在Java Swing应用程序中将系统输出和错误信息重定向到JTextComponent组件的方法。通过创建自定义的MyPrintStream类继承PrintStream,并重写write方法,实现了将输出内容更新到GUI组件上。

4316

被折叠的 条评论
为什么被折叠?



