System.out.println输出到JTextArea

时间:2009-11-27 16:22:05

标签: java console jtextarea

我希望每次调用System.out.println追加到给定的JTextArea,而不必更改对System.out.println的所有调用......这可能吗?

谢谢。

4 个答案:

答案 0 :(得分:11)

自1.5以来的Java版本System.setOut()允许您安装自己的PrintStream。只需创建一个简单的OutputStream,它会附加通过write()的数据然后将其包装在PrintStream中并安装它。

答案 1 :(得分:1)

您可以使用jTextArea.append("Your String")方法

来完成

答案 2 :(得分:0)

我认为没有一种简单的方法。出于这种原因,我通常会尝试在代码中避免System.out次调用。如果您有类似(例如)MyUtil.myOutput()的方法,那么您可以进行一次更改并将其重新路由到您想要的地方

答案 3 :(得分:-1)

我想你可能会使用某种形式的AspectJ来做这件事,但我认为这可能有点矫枉过正。我会做的是创建一个既可以打印又可以附加的方法。

public void printAndAppend(String text) {
      System.out.println(text);
      textArea.append(text);
}

然后,您可以对System.out.println执行全局查找和替换,并将其替换为printAndAppend