我想每次调用 System.out.println 以附加到给定的 JTextArea,而不必更改对 System.out.println 的所有调用...这可能吗?
谢谢你。
自 1.5 以来的 Java 版本System.setOut()
允许您安装自己的PrintStream
. 只需创建一个简单OutputStream
的附加它通过的数据write()
然后将其包装在 a 中PrintStream
并安装它。
好吧,您可以使用该jTextArea.append("Your String")
方法来做到这一点
我不认为有一个简单的方法。System.out
正是出于这种原因,我通常会尽量避免在我的代码中调用。如果您有像(比如说)这样的方法,MyUtil.myOutput()
那么您可以进行一次更改并将其重新路由到您想要的位置
我想你可能会使用某种形式的AspectJ来做到这一点,但我认为这可能是矫枉过正。我要做的是创建一个既可以打印又可以追加的方法。
public void printAndAppend(String text) {
System.out.println(text);
textArea.append(text);
}
然后,您可以进行全局查找和替换,System.out.println
并将其替换为printAndAppend