[java] JLabel의 줄 바꿈

줄 바꿈을 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("<","&lt;").replaceAll(">", "&gt;").replaceAll("\n", "<br/>") + "</html>")

이렇게하면 다음과 같은 이점이 있습니다.

  • 모든 줄 바꿈을 반드시으로 바꿉니다 <br/>.
  • 자동으로 최종 대체 <>함께 &lt;하고 &gt;일부는 혼란을 렌더링 방지, 각각.

그것이하는 일은 :

  • "<html>" +html시작 부분에 여는 태그 추가
  • .replaceAll("<", "&lt;").replaceAll(">", "&gt;")탈출 <>편의를 위해
  • .replaceAll("\n", "<br/>")모든 br줄 바꿈을 원하는 내용의 (HTML 줄 바꿈) 태그로 바꿉니다.
  • … 그리고 마지막에 태그를 + "</html>"닫습니다 html.

추신 : 그런 오래된 게시물을 깨워서 정말 유감입니다.하지만 어쨌든 Java에 대한 신뢰할 수있는 스 니펫이 있습니다!


답변

Jide 오픈 소스 구성 요소에서 MultilineLabel 구성 요소를 사용할 수 있습니다.

http://www.jidesoft.com/products/oss.htm


답변

넌 할 수있어

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>하면 개행 문자가 표시됩니다.


답변