JTextArea 및 JScrollPane을 사용하여 문제가 발생합니다. 어떤 이유로 스크롤 창이 문서의 마지막 줄을 인식하지 못하는 것처럼 보이기 때문에 스크롤하기 전의 줄까지만 스크롤됩니다. 스크롤 막대는 문서의 줄이 textArea가 보여주는 줄 수보다 두 줄까지 표시 될 때까지 슬라이드 할 수있는 상태로 변경되지 않습니다 (한 번 더 크게 표시됨).
이전에이 문제를 겪은 사람이 있습니까? 좋은 해결책이 될 것입니다. (필자는 문서의 끝에 빈 줄을 추가하지 않아도됩니다. 새 줄을 추가 할 때마다 제거해야합니다). 여기
JFrame frame = new JFrame("Java Chat Program");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container pane = frame.getContentPane();
if (!(pane.getLayout() instanceof BorderLayout)) {
System.err.println("Error: UI Container does not implement BorderLayout.");
System.exit(-1);
}
textArea = new JTextArea();
textArea.setPreferredSize(new Dimension(500, 100));
textArea.setEditable(false);
textArea.setLineWrap(true);
textArea.setWrapStyleWord(true);
JScrollPane scroller = new JScrollPane(textArea);
scroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
pane.add(scroller, BorderLayout.CENTER);
내가 textArea의에 새 줄을 추가하기 위해 사용하는 방법이다 : 당신의 도움에 대한
public void println(String a)
{
textArea.append(" "+a+"\n");
textArea.setCaretPosition(textArea.getDocument().getLength());
}
감사합니다,
나는 텍스트 영역과의 ScrollPane의 인스턴스 방법은 다음과입니다
조나단
EDIT : 또한 사이드 노트로, 현재 코드로 수동으로해야합니다. 아래로 내려 가라. 필자는 println (line) 메소드의 setCaretPosition (doc.getLength())이 라인이 입력 된 후 자동으로 페이지를 맨 아래로 설정한다고 가정했습니다 ... 그럴까요? 아니면 다르게 처리해야합니까?
대단히 감사합니다. =) – Jonathan