我希望每次调用System.out.println追加到给定的JTextArea,而不必更改对System.out.println的所有调用......这可能吗?
谢谢。
答案 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