JButton이란?
JButton은 AbstractButton의 하위 클래스로, Java Swing 계층 구조에서 가장 기본적이면서도 중요한 컴포넌트 중 하나입니다. 주로 로그인 화면처럼 사용자 입력이 필요한 애플리케이션에서 널리 사용되며, 버튼을 누르거나 클릭하면 ActionListener 인터페이스를 통해 이벤트를 처리할 수 있습니다.
JButton에는 텍스트, 아이콘, 또는 텍스트와 아이콘을 함께 설정할 수 있습니다. 특히 Swing 컴포넌트는 내부적으로 HTML 렌더링을 지원하기 때문에, 버튼 텍스트를 <html> 태그로 감싸기만 하면 굵게(bold), 기울임(italic), 밑줄, 글자색 변경 등 다양한 스타일을 별도의 커스텀 렌더러 없이 간단히 적용할 수 있다는 점이 큰 장점입니다.
HTML 텍스트 적용 원리
Swing은 버튼의 텍스트 문자열이 <html> 태그로 시작하는 경우 이를 일반 텍스트가 아닌 HTML 문서로 해석하여 렌더링합니다. 따라서 <b>, <i>, <u>, <font>, <br> 같은 기본 HTML 태그를 자유롭게 조합해 사용할 수 있습니다.
예제 코드
아래 예제는 일반 텍스트 버튼과 HTML 태그로 스타일을 적용한 버튼을 나란히 배치하여 차이를 보여줍니다.
import java.awt.*;
import javax.swing.*;
public class JButtonHtmlTextTest extends JFrame {
private JButton jbutton1, jbutton2;
public JButtonHtmlTextTest() {
setTitle("JButtonHtmlText Test");
// 일반 텍스트 버튼
jbutton1 = new JButton("Normal Button");
jbutton1.setHorizontalAlignment(SwingConstants.CENTER);
add(jbutton1, BorderLayout.WEST);
// HTML 태그로 굵게 + 기울임 스타일을 적용한 버튼
jbutton2 = new JButton("<html><b><i>HTML Text Button</i></b></html>");
jbutton2.setHorizontalAlignment(SwingConstants.CENTER);
add(jbutton2, BorderLayout.EAST);
setSize(375, 250);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) {
new JButtonHtmlTextTest();
}
}
실행 결과
프로그램을 실행하면 왼쪽에는 평범한 일반 텍스트 버튼이, 오른쪽에는 굵은 기울임꼴로 표시된 HTML 스타일 버튼이 나타납니다. 이처럼 HTML 태그만으로도 버튼의 시각적인 강조 효과를 쉽게 만들 수 있습니다.

정리
- JButton은 AbstractButton을 상속받으며 클릭 이벤트를 ActionListener로 처리한다.
- 버튼 텍스트를
<html>태그로 감싸면 Swing이 이를 HTML로 렌더링한다. <b>,<i>,<font>등의 태그로 굵게, 기울임, 색상 등 다양한 스타일을 적용할 수 있다.