2013-04-27 3 views
1

나는 일정한 너비를 갖는 사이드 바를 사용하여 GUI를 만들고 있습니다. 텍스트를 JTextPane에 추가하고이 모든 것을 JPanel PanelList에 추가하고 싶습니다.스크롤 가능한 텍스트가 텍스트 길이에 의존하지 않음

문제는 스크롤 할 수있는 텍스트가 항상 전체 텍스트를 표시하므로 문제가 자동으로 가장 긴 문자열의 길이로 조정된다는 것입니다.

이 코드를 갖는

public PanelList(int size){ 

     text = new JTextPane(); 
     text.setEditable(false); 
     text.setText("IwantthisStringtobeScrollable\n" + 
       "ThisStringis30characterslength"); 
     JScrollPane scrollpane = new JScrollPane(text); 
     scrollpane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); 
     scrollpane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); 
     this.add(scrollpane); 

} 

어떤 방법 내가 JTextPane의 만 20 문자를 표시하고 스크롤 할 수 있도록 호출해야합니까?

EDIT : 스크롤 패널이 표시 할 너비는 매개 변수 크기입니다.

+0

스크롤 막대를 표시하지 않으시겠습니까? 또는 당신은 그 (것)들을 원하는가? – Apurv

+0

스크롤바가 필요합니까 – RecuencoJones

+0

스크롤 패널의보기 포트에'JTextPane'이 필요하다고 생각합니다 – Apurv

답변

3

이 개념을 지원하지 않습니다 JTextPane의

JTextPane의 20 문자를 보여주기 위해 나는 그렇게 호출해야 할 어떤 방법.

간단한 텍스트 만 표시하는 경우 (여러 글꼴이나 텍스트 색이 필요하지 않은 경우) JTextArea을 사용할 수 있습니다. 이 5 행과 20 열이 포함 된 텍스트 영역을 생성합니다

JTextArea textArea = new JTextArea(5, 20); 
JScrollPane scrollPane = new JScrollPane(textArea); 

: 그럼 당신은 같은 것을 할 것입니다. 모든 문자의 너비가 다르기 때문에 열이 정확하지 않습니다. 정확히 20자를 원하면 monospaced 글꼴을 사용해야합니다.

+0

감사합니다. JTextArea가 내 문제를 해결했습니다. 스크롤 가능 뷰포트의 크기를 설정할 수있는 생성자를 알지 못했습니다. 정말 고맙습니다. – RecuencoJones