JAVA

[JAVA] JLabel 커스텀마이징 2 (JLabel Customization)

Coding🌱 2024. 9. 1. 03:00
반응형
SMALL

이 글에서는 JLabel에 이미지 추가, 텍스트 정렬, 테두리 스타일 설정 등을 통해 더욱 세련된 사용자 인터페이스를 만드는 방법을 소개하겠습니다.

1. JLabel에 텍스트 개행 적용하는 방법

 
 
 
JAVA
JLabel label = new JLabel("<html>Line 1<br>Line 2</html>");

JLabel의 기본 설정은 텍스트를 한 줄로만 표시합니다. HTML 태그를 사용하면 텍스트를 여러 줄로 나누거나, 다양한 서식과 스타일을 적용할 수 있습니다. 위 코드에서 <br> 태그를 사용한 이유는 텍스트에 개행을 추가하기 위해서입니다.

2. JLabel 텍스트의 글자 다른 폰트와 색상 적용하는 방법

 
 
 
JAVA
// <span style='font-family:폰트; font-size:크기; font-weight:스타일; color:색상;'>텍스트</span>
String htmlText = "<html>"
	+ "<span style='font-family:맑은고딕; font-size:20px; font-weight:bold; color:red;'>가</span>"
	+ "<span style='font-family:궁서체; font-size:18px; font-weight:normal; color:blue;'>나</span>"
	+ "<span style='font-family:굴림체; font-size:16px; font-weight:italic; color:green;'>다</span>"
	+ "</html>";

JLabel label = new JLabel(htmlText);

<span>은 HTML에서 텍스트의 일부를 스타일링하거나 그룹화할 때 사용하는 태그입니다. 주로 style 속성과 함께 사용하여 폰트, 색상, 크기 등을 설정할 수 있습니다.

3. JLabel의 배경 투명하게 적용 하는 방법

 
 
 
JAVA
label.setOpaque(false);

위 방법을 사용하면 JLabel의 배경이 투명하게 됩니다. 따라서 배경색을 따로 설정할 수 없으며 투명한 배경만 유지됩니다.

 
 
 
JAVA
label.setOpaque(true);
label.setBackground(new Color(255, 0, 0, 128)); // 투명도 50%의 빨강색

setOpaque(true)를 사용하여 JLabel의 배경을 활성화한 후, setBackground(new Color(r, g, b, a))로 배경색과 투명도를 설정할 수 있습니다. 여기서 a는 투명도를 나타내며, 0은 완전 투명, 255는 완전 불투명입니다. r, g, b는 각각 빨강(R), 초록(G), 파랑(B) 색상의 강도를 설정하여 색상을 정의합니다.

4. JLabel의 텍스트 색상 반투명하게 적용 하는 방법

 
 
 
JAVA
label.setForeground(new Color(255, 0, 0, 100));

setForeground(new Color(r, g, b, a))를 사용하면 텍스트 색상에 투명도를 적용할 수 있습니다. a는 투명도를 조절하는 값으로, 0에서 255 사이의 값을 입력합니다. 여기서 0은 완전 투명, 255는 완전 불투명을 의미합니다.

5. JLabel의 테두리 색상과 두께 변경 하는 방법

 
 
 
JAVA
label.setBorder(new LineBorder(Color.GRAY, 5, true));
/*
 * new LineBorder(색상, 테두리 굵기, 라운드 모서리 설정 여부)
 * 색상: 모든 색상 가능
 *      ex) Color.RED / new Color(255, 0, 0)
 * 테두리 굵기: 숫자로 입력 (정수만 가능)
 * 라운드 모서리 설정 여부: true(둥근 모서리), false(직각 모서리)
 */

기본적으로 JLabel은 테두리가 없는 상태로 만들어집니다.

6. JLabel에 텍스트와 이미지를 동시에 배치하는 방법

 
 
 
JAVA
// 방법 1
ImageIcon icon = new ImageIcon("path/to/image.png"); // 이미지 파일 경로
JLabel label = new JLabel("Hello, World!", icon, JLabel.CENTER);

// 방법 2
ImageIcon icon = new ImageIcon("path/to/image.png"); // 이미지 파일 경로
JLabel label = new JLabel("Hello, World!");
label.setIcon(icon);

JLabel에 이미지와 텍스트를 함께 넣을 경우, 이미지는 기본적으로 JLabel 내부에 고정되지만, 텍스트의 위치는 정렬 설정을 통해 자유롭게 조정할 수 있습니다. 텍스트 정렬하는 방법은 아래 코드로 설명해 드리겠습니다.

 

 
 
 
JAVA
label.setVerticalTextPosition(JLabel.BOTTOM);   // 텍스트 수직정렬
/*
 * JLabel.TOP : 텍스트를 이미지 위에 정렬
 * JLabel.CENTER : 텍스트를 이미지 중앙에 정렬
 * JLabel.BOTTOM : 텍스트를 이미지 아래에 정렬
 */
label.setHorizontalTextPosition(JLabel.CENTER);   // 텍스트 수평정렬
/*
 * JLabel.LEFT : 텍스트를 이미지 왼쪽에 정렬
 * JLabel.CENTER : 텍스트를 이미지 중앙에 정렬
 * JLabel.RIGHT : 텍스트를 이미지 오른쪽에 정렬
 */
label.setIconTextGap(0);  // 텍스트와 이미지 사이의 간격 조절

7. JLabel에 툴팁 추가 방법

툴팁이란 마우스를 라벨 위에 올렸을 때 추가 정보를 제공하는 작은 팝업입니다. 

 

 
 
 
JAVA
label.setToolTipText("This is a tooltip message.");

일정 시간 동안 마우스를 라벨 위에 올려 놓아야 툴팁이 표시됩니다.

8. JLabel에 마우스를 올리면 커스텀 커서를 표시하는 방법

 
 
 
 
JAVA
Toolkit toolkit = Toolkit.getDefaultToolkit();  // 기본 Toolkit 인스턴스를 가져옵니다.
Image cursorImage = toolkit.getImage("path/to/image.png");  // 커서로 사용할 이미지를 로드합니다.
Cursor customCursor = toolkit.createCustomCursor(cursorImage, new Point(0, 0), "Custom Cursor");  // 커스텀 커서를 생성합니다.
label.setCursor(customCursor);  // JLabel에 커스텀 커서를 설정합니다.

Toolkit은 Java에서 시스템 기능에 접근할 수 있게 해주는 클래스입니다. 주로 커서 설정이나 이미지 로드 등에 사용됩니다.

반응형
LIST