줄 바꿈을 JLabel
어떻게 표시 할 수 있습니까?
예를 들어, 내가 원하는 경우 :
안녕하세요!
ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ
이것이 내가 지금 가지고있는 것입니다.
JLabel l = new JLabel("Hello World!\nblahblahblah", SwingConstants.CENTER);
표시되는 내용은 다음과 같습니다.
안녕하세요!
이 질문이 멍청한 질문이라면 용서 해주세요. 저는 스윙 기본 사항을 배우는 중입니다.
답변
문자열을로 둘러싸고 <html></html>
줄을 <br/>
.
JLabel l = new JLabel("<html>Hello World!<br/>blahblahblah</html>", SwingConstants.CENTER);
답변
시도해 볼 수 있습니다.
myLabel.setText("<html>" + myString.replaceAll("<","<").replaceAll(">", ">").replaceAll("\n", "<br/>") + "</html>")
이렇게하면 다음과 같은 이점이 있습니다.
- 모든 줄 바꿈을 반드시으로 바꿉니다
<br/>
. - 자동으로 최종 대체
<
와>
함께<
하고>
일부는 혼란을 렌더링 방지, 각각.
그것이하는 일은 :
"<html>" +
html
시작 부분에 여는 태그 추가.replaceAll("<", "<").replaceAll(">", ">")
탈출<
및>
편의를 위해.replaceAll("\n", "<br/>")
모든br
줄 바꿈을 원하는 내용의 (HTML 줄 바꿈) 태그로 바꿉니다.- … 그리고 마지막에 태그를
+ "</html>"
닫습니다html
.
추신 : 그런 오래된 게시물을 깨워서 정말 유감입니다.하지만 어쨌든 Java에 대한 신뢰할 수있는 스 니펫이 있습니다!
답변
답변
넌 할 수있어
JLabel l = new JLabel("<html><p>Hello World! blah blah blah</p></html>", SwingConstants.CENTER);
적절한 경우 자동으로 포장됩니다.
답변
JIDE MultilineLabel을 추천 해 주신 Aakash에게 감사드립니다. JIDE의 StyledLabel도 최근 여러 줄을 지원하도록 향상되었습니다. 다른 많은 훌륭한 기능이 있기 때문에 MultilineLabel보다 권장합니다. 아래에서 StyledLabel에 대한 기사를 확인할 수 있습니다. 여전히 무료이며 오픈 소스입니다.
http://www.jidesoft.com/articles/StyledLabel.pdf
답변
JLabel은 실제로 일부 초보적인 HTML을 표시 할 수 있기 때문에 개행 문자 사용에 응답하지 않습니다 (예 : System.out과 달리).
해당 HTML을 넣고를 사용 <BR>
하면 개행 문자가 표시됩니다.