반응형
Java Swing을 사용하다 보면 JLabel에 긴 텍스트를 넣을 때 줄 바꿈이 적용되지 않아 한 줄로만 출력되는 경우가 있다.
나 또한 처음에는 \n 등을 이용해 보았으나, 한 줄로만 표시되어 고생했는데, 이번 글에서는 내가 겪은 문제와 이를 해결한 과정을 정리해 본다.

 

 

◆ 현상


JLabel에 두줄로 된 문자열을 넣어야 하는데 JLabel은 기본적으로 단순 문자열 렌더링만 처리하기 때문에, "\n"이나 System.lineSeparator() 등을 사용해도 줄 바꿈이 적용되지 않고 한 줄로만 출력됨.

String text = "첫 번째 줄\n두 번째 줄";
JLabel label = new JLabel(text);
String newline = System.lineSeparator();
String text = "첫 번째 줄" + newline + "두 번째 줄";
JLabel label = new JLabel(text);

 

 

◆ 해결 방법


JLabel은 기본적으로 HTML 렌더링을 지원한다.

문자열을 <html>…</html> 태그로 감싸면 내부적으로 HTML 파서를 통해 텍스트를 처리하므로, <br> 태그를 사용해 줄 바꿈을 할 수 있다.

String htmlText = "<html>첫 번째 줄<br>두 번째 줄</html>";
JLabel label = new JLabel(htmlText);

 

 

참조
How to Use Labels
https://docs.oracle.com/javase/tutorial/uiswing/components/label.html

 


글 내용 중 잘못된 부분이 있거나, 첨부하실 내용이 있으시면 댓글로 남겨주세요. 공부하는데 많은 도움이 됩니다.
-- 기억의 유효기간은 생각보다 짧다. --
반응형