I would like to everytime I call System.out.println to append to a given JTextArea, without having to change all calls to System.out.println... Is this possible?
Thank you.
1.5 以降のバージョンの Java にはSystem.setOut()
、独自の をインストールできるバージョンがありますPrintStream
。OutputStream
取得したデータを追加する単純なものを作成し、write()
それをラップしてPrintStream
インストールします。
簡単な方法はないと思います。System.out
私は通常、まさにこのような理由でコード内での呼び出しを避けようとします。(たとえば)のようなメソッドがある場合はMyUtil.myOutput()
、単一の変更を加えて、必要な場所に再ルーティングできます
なんらかの形式のAspectJを使用してそれを実行できる可能性があると思いますが、それはやり過ぎかもしれません。私がすることは、印刷と追加の両方を行うメソッドを作成することです。
public void printAndAppend(String text) {
System.out.println(text);
textArea.append(text);
}
その後、グローバルな検索と置換を実行して、System.out.println
それを置き換えることができますprintAndAppend