重定向java控制台输出 到swing 的 jtextfild组件中

本文介绍了一种在Java Swing应用程序中将系统输出和错误信息重定向到JTextComponent组件的方法。通过创建自定义的MyPrintStream类继承PrintStream,并重写write方法,实现了将输出内容更新到GUI组件上。

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中显示了



评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值