JList는 JComponent 클래스를 상속받은 스윙(Swing) 컴포넌트로, 사용자가 하나 이상의 항목을 선택할 수 있도록 객체 목록을 화면에 표시하는 데 사용됩니다. JList는 ListSelectionListener 인터페이스를 통해 항목 선택 변경 이벤트를 처리할 수 있으며, 이 인터페이스를 구현할 때는 추상 메서드인 valueChanged()를 반드시 작성해야 합니다.
또한 DefaultListModel 클래스는 리스트 모델의 간단한 구현체를 제공하여, JList 컨트롤에 표시되는 항목들을 손쉽게 관리할 수 있게 해줍니다. addElement() 메서드를 호출하면 JList에 새로운 항목을 동적으로 추가할 수 있습니다.
HTML 태그로 글꼴 스타일 지정하기
JList의 각 항목에 서로 다른 글꼴 스타일을 적용하려면 HTML 태그를 활용하면 됩니다. 항목 문자열을 <html> 태그로 감싸고, 그 안에 원하는 스타일 태그를 넣기만 하면 됩니다.
- <b> : 텍스트를 굵게(bold) 표시
- <i> : 텍스트를 기울임(italic)체로 표시
- <u> : 텍스트에 밑줄(underline) 표시
예제 코드
import java.awt.*;
import javax.swing.*;
public class JLabelListTest {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new JLabelListTest().makeUI();
}
});
}
public void makeUI() {
String[] data = {"<html>Raja</html>", "<html><b>Adithya</b></html>", "<html><i>Jaidev</i></html>", "<html><u>Chaitanya</u></html>"};
JList list = new JList(data);
list.setBackground(Color.lightGray);
JFrame frame = new JFrame();
frame.getContentPane().add(new JScrollPane(list), BorderLayout.NORTH);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 300);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
실행 결과
위 코드를 실행하면 목록의 네 개 항목이 각각 일반체(Raja), 굵은체(Adithya), 기울임체(Jaidev), 밑줄(Chaitanya) 스타일로 표시되는 것을 확인할 수 있습니다.

참고: ListCellRenderer 활용
HTML 태그 방식보다 더 세밀한 제어가 필요하다면 ListCellRenderer 인터페이스를 구현한 사용자 정의 렌더러를 사용할 수 있습니다. 이 방식을 활용하면 글꼴뿐만 아니라 색상, 아이콘, 항목별 레이아웃까지 자유롭게 조정할 수 있습니다.