안녕하세요 JPanel에서 Java 콘솔이 반환하는 것을 그릴 수 있습니까? 따라 할 수있는 자습서가 있습니까? 감사합니다 sw자바 콘솔 JPanel
답변
처음 콘솔에서 읽습니다. 이렇게하려면 System.setOut()을 사용하십시오. ByteOutputStream을 사용하여 거기에 쓰고 그 (것)들에서 읽으십시오. 프로그램이 출력하는 내용을 시스템에서 가져올 수 있습니다. TextArea 또는 JScrollPane을 사용하여 텍스트를 표시하십시오.
내가 TextAreaOutputStream 전화 클래스 사용하여 나는이 발견 어디 기억할 수는 없지만, 나는 JPanel의에서 열린 JTextArea에 대한 출력 스트림을 출력했다 :
import java.io.IOException;
import java.io.OutputStream;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;
public class TextAreaOutputStream extends OutputStream {
private final JTextArea textArea;
private final StringBuilder sb = new StringBuilder();
private String title;
public TextAreaOutputStream(final JTextArea textArea, String title) {
this.textArea = textArea;
this.title = title;
sb.append(title + "> ");
}
@Override
public void flush() {
}
@Override
public void close() {
}
@Override
public void write(int b) throws IOException {
if (b == '\r')
return;
if (b == '\n') {
final String text = sb.toString() + "\n";
SwingUtilities.invokeLater(new Runnable() {
public void run() {
textArea.append(text);
}
});
sb.setLength(0);
sb.append(title).append("> ");
}
sb.append((char) b);
}
}
난 다음 다시 직접 표준 출력을 Alex가 그의 대답에서 언급 한 것처럼이 물체로 흐르게하십시오.
'sb.append (title) .append (">");'아마 더 효율적 일 것입니다. –
@DavidConrad : 실제로 String concat을 피할 것입니다. 감사합니다. 답변이 수정되었습니다. –
모든 것을 JTextArea에 반향시키기 위해 FilterOutputStream의 서브 클래스를 생성하십시오.
class Echo extends FilterOutputStream {
private final JTextArea text;
public Echo(OutputStream out, JTextArea text) {
super(out);
if (text == null) throw new IllegalArgumentException("null text");
this.text = text;
}
@Override
public void write(int b) throws IOException {
super.write(b);
text.append(Character.toString((char) b));
// scroll to end?
}
// overwrite the other write methods for better performance
}
표준 출력 대체 :
JTextArea text = new JTextArea();
System.setOut(new PrintStream(new Echo(System.out, text)));
Message Console 당신을 관심을 수있는 몇 가지 더 많은 옵션을 제공합니다.
- 1. 자바 스윙 새로 고침 JPanel
- 2. 자바 업데이트 Jpanel 구성 요소
- 3. 자바 스크립트 콘솔 JSC
- 4. 자바 콘솔 메뉴
- 5. 자바에서 스크롤 가능한 JPanel
- 6. 반복 JPanel
- 7. Java에서 JPanel 패딩
- 8. 자바 콘솔 응용 프로그램 재시작
- 9. 크롬을위한 최상의 자바 스크립트 콘솔
- 10. 자바 JPanel 및 graphics2d를 투명하게 만드는 방법은 무엇입니까?
- 11. 비디오 스윙 JPanel 내 SWT보기
- 12. 새로 고침 JPanel
- 13. BoxLayout의 JPanel 여백
- 14. 애플릿의 JPanel 레이아웃
- 15. 원형 JPanel 스윙
- 16. Swt.browser inside of Jpanel
- 17. JFrame에서 JPanel 제거
- 18. JPanel 아래의 슬라이딩 윈도우
- 19. Jpanel 데이터 인쇄 문제
- 20. Jpanel 페인트 Nullpointer 예외
- 21. JFrame/JPanel unclickable 만들기
- 22. JPanel 배경에 이미지 추가
- 23. NetBeans의 JFrame에서 JPanel 제거
- 24. JPanel 위로 뷰포트 이동하기
- 25. JPanel inside another
- 26. 클래스의 Jpanel 업데이트하기
- 27. JPanel 그리드 문제
- 28. 뒤에서 JPanel 상위를 선택하십시오
- 29. JPanel 배경 이미지
- 30. GridBagLayout이있는 중첩 JPanel
포럼 스윙 전문가를 유치하기 위해 질문 태그에 "스윙"을 추가 할 수 있습니다. :) –