GUI の TextArea への出力のリダイレクト
グラフィカル ユーザー インターフェイス (GUI) では、通常は次のように出力される出力を表示するのが一般的です。インターフェイス内の指定された領域のコンソールに出力されます。これにより、すべての出力がアプリケーション ウィンドウ内に保持されるため、よりユーザー フレンドリーなエクスペリエンスが提供されます。
これを実現するには、プログラムの印刷ストリームを GUI 内で制御できるストリームにリダイレクトする必要があります。 1 つのアプローチには、出力をキャプチャして目的の TextArea に表示するカスタム出力ストリームの作成が含まれます。
実装例
このアプローチを実装する方法の例を次に示します。
<code class="java">public class GUIOutputRedirection { private TextArea textArea; private PrintStream originalPrintStream; public GUIOutputRedirection(TextArea textArea) { this.textArea = textArea; originalPrintStream = System.out; } public void redirectOutput() { PrintStream stream = new PrintStream(new OutputStream() { @Override public void write(byte[] b, int off, int len) { String text = new String(b, off, len); textArea.append(text); originalPrintStream.write(b, off, len); } @Override public void write(byte[] b) { write(b, 0, b.length); } @Override public void write(int b) { byte[] b1 = new byte[1]; b1[0] = (byte) b; write(b1, 0, 1); } }); System.setOut(stream); } // ... }</code>
この例では、TextArea と元の印刷ストリームをラップする新しい PrintStream が定義されています。新しいストリームに書き込むと、出力は TextArea とコンソールの両方に送信されます。
この実装を使用するには、GUIOutputRedirection クラスのインスタンスを作成し、ターゲット TextArea を指定して、redirectOutput() を呼び出します。 method:
<code class="java">GUIOutputRedirection redirection = new GUIOutputRedirection(textArea); redirection.redirectOutput();</code>
この設定を行うと、通常はコンソールに送られる出力が GUI 内の指定された TextArea に表示されるようになります。
以上がコンソール出力を GUI の TextArea にリダイレクトするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。