3

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

谢谢你。

4

4 回答 4

11

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

于 2009-11-27T16:41:37.837 回答
1

好吧,您可以使用该jTextArea.append("Your String")方法来做到这一点

于 2016-12-31T08:21:58.713 回答
0

我不认为有一个简单的方法。System.out正是出于这种原因,我通常会尽量避免在我的代码中调用。如果您有像(比如说)这样的方法,MyUtil.myOutput()那么您可以进行一次更改并将其重新路由到您想要的位置

于 2009-11-27T16:39:45.707 回答
-1

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

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

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

于 2009-11-27T16:37:18.740 回答