質問

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

に置き換えることができます。
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top