JTextAreaへのSystem.out.println出力
質問
System.out.printlnを呼び出すたびに、System.out.printlnへのすべての呼び出しを変更することなく、指定されたJTextAreaに追加したい...これは可能ですか?
ありがとう。
解決
1.5以降のバージョンのJavaには、独自の PrintStream
をインストールできる System.setOut()
があります。 write()
で取得したデータを追加する単純な OutputStream
を作成し、それを PrintStream
でラップしてインストールします。
他のヒント
さて jTextArea.append(" Your String")
メソッドを使用してそれを行うことができます
簡単な方法はないと思います。私は通常、まさにこのような理由で、コード内での System.out
の呼び出しを避けるようにしています。 (たとえば) MyUtil.myOutput()
のようなメソッドがある場合は、1つの変更を加えて必要な場所に再ルーティングできます
AspectJ の何らかの形で潜在的に使用できると思いますが、やり過ぎかもしれません。ただし、印刷と追加の両方を行うメソッドを作成します。
public void printAndAppend(String text) {
System.out.println(text);
textArea.append(text);
}
その後、 System.out.println
のグローバルな検索と置換を実行し、 printAndAppend
所属していません StackOverflow