JAVA实例编程:Java标准输出重定向到GUI_第2页

考试站(www.examzz.com)   【考试站:中国教育考试第一门户】   2011年11月10日

  /** *//**

  * 重写write()方法,将输出信息填充到GUI组件。

  * @param buf

  * @param off

  * @param len

  */

  @Override

  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);

  component.setText(sb.toString());

  }

  });

  }

  }

  类 GUIPrintStream,继承自 PrintStream 并且对它进行了一些修改。

  GUIPrintStream 在构造函数中增加了一个 JTextComponent 变量,它就是我们的目标输出 GUI 组件,它规定了目标输出组件是一个文本组件。接下来覆写了 write(byte[] buf, int off, int len)方法,这个方法原来的作用是将 len 字节从指定的初始偏移量为 off 的 byte 数组写入此流,现在经过我们的修改,变成了将 byte 数组包装成 String 写入目标 GUI 组件。

  简单的代码完成了将标准输出重定向到 GUI 的全过程。由此延伸,还可以将标准输出重定向到文本文件、从GUI获取标准输入等,就不一一介绍


相关文章