GUI에서 텍스트 영역으로 출력 리디렉션
그래픽 사용자 인터페이스(GUI)에서는 일반적으로 출력을 표시하는 것이 일반적입니다. 인터페이스 내 지정된 영역의 콘솔에 인쇄됩니다. 이는 모든 출력을 애플리케이션 창 내에 유지함으로써 더욱 사용자 친화적인 환경을 제공합니다.
이를 달성하려면 프로그램의 인쇄 스트림을 GUI 내에서 제어할 수 있는 스트림으로 리디렉션해야 합니다. 한 가지 접근 방식은 출력을 캡처하여 원하는 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를 지정한 다음 리디렉션Output()을 호출합니다. 방법:
<code class="java">GUIOutputRedirection redirection = new GUIOutputRedirection(textArea); redirection.redirectOutput();</code>
이 설정을 사용하면 일반적으로 콘솔로 전송되는 모든 출력이 이제 GUI 내의 지정된 TextArea에 표시됩니다.
위 내용은 GUI에서 콘솔 출력을 TextArea로 리디렉션하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!