반응형
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
글 내용 중 잘못된 부분이 있거나, 첨부하실 내용이 있으시면 댓글로 남겨주세요. 공부하는데 많은 도움이 됩니다.
-- 기억의 유효기간은 생각보다 짧다. --
반응형
'언어 > JAVA' 카테고리의 다른 글
[JAVA] Swing JTable 에서 남은 공간을 마지막 컬럼으로 할당하기 (JTable.AUTO_RESIZE_LAST_COLUMN) (0) | 2025.06.02 |
---|---|
[JAVA] Swing JTable 컬럼이 보이지 않을 때 해결방법 (0) | 2025.06.02 |
[JAVA] 리플렉션(Reflection)으로 private 필드/메서드에 접근하기 (2) | 2025.05.22 |
HTTP GET 요청시 java.net.URISyntaxException 에러 해결 방법 (0) | 2025.01.13 |
HttpServletRequest에서 클라이언트의 IP 주소 추출하기 (0) | 2024.11.01 |