2012-02-15 7 views
9

질문을한지 얼마되지 않았습니다.자바 JLabel, 텍스트를 다음 줄로 나누시겠습니까?

JLabels이 사용되는 Java 응용 프로그램을 개발 중입니다. 어쨌든, 아래 그림에서 볼 수 있듯이 Category Test이라는 텍스트가 잘리지 않아 결국 Categor...이라고 말합니다. 레이블의 너비를 채우면 텍스트를 "깰"수있는 방법이 있습니까?

enter image description here

내가

내가 이렇게 같은 JTextPane가 사용했던 어떤 :

JTextPane text = new JTextPane(); 
    SimpleAttributeSet attr = new SimpleAttributeSet(); 

    StyleConstants.setAlignment(attr, StyleConstants.ALIGN_CENTER); 

    pane.add(text, c); 

그럼 어쨌든 내 텍스트,하지만 덕분에 추가 여기에있는 이미지입니다!

+0

나는 "Category"문자열을 거기에서 꺼낼 것이다. 그것은 완전히 불필요합니다. 대신 아마도 격자 위의 단일 JLabel에 "Categories"가있을 것입니다. –

+0

어, 그것들은 자리 표시 자입니다. 사용자는 카테고리의 내용을 정의합니다. 제퍼디 봤어? –

답변

10

JLabel 기본적으로 할 수 없습니다. 하지만 JLabel에는 html에 대한 일부 지원이 있으므로 의 텍스트 <html>First Line<br />Second Line</html>이 두 줄에 표시됩니다.

라인을 분리 할 수있는 구성 요소가 필요하면 JTextArea을 살펴보십시오.

+0

지금 당장 +1하겠습니다. 그러나 다른 방법을 찾을 수 없는지 알고 싶습니다. 감사. –

+0

@Ken은 더 많은 검색을했지만, 'JLabel'은 html을 사용하지 않는 한 단 한 줄만 표시합니다. – Jeffrey

+0

D : 글쎄, 내가 뭘 할 수 있는지 보겠다. 감사합니다! –

2

텍스트 랩을 원한다면 JTextArea를 사용해야합니다. JLabel은 그것을하지 않습니다.

1

JIDE 일반 레이어 오픈 소스 프로젝트의 StyledLabel 구성 요소에서 http://java.net/projects/jide-oss/에 있습니다.

html JLabel 접근법의 문제점은 자동 줄 바꾸기가 아니라 일반 JLabel보다 약 20 ~ 40 배 느리다는 것입니다.

JTextArea 또는 JTextPane 접근법의 문제점은 이상한 크기 문제가 있으며 20 배 더 느리다는 것입니다.

StyledLabel은 JLabel을 확장합니다. 자동 줄 바꾸기는 추가하는 많은 기능 중 하나 일뿐입니다. 그리고 성능은 평범한 JLabel만큼 빠릅니다.

희망이 있으면 도움이 될 것입니다.

관련 문제