JComboBox란 무엇인가?
JComboBox는 JComponent 클래스를 상속한 Java Swing 컴포넌트로, 사용자가 직접 값을 확인하고 선택할 수 있는 텍스트 필드와 목록에서 원하는 값을 고를 수 있는 드롭다운 리스트가 하나로 결합된 형태입니다.
사용자가 콤보 박스와 상호작용하면 ActionListener, ChangeListener, ItemListener와 같은 다양한 이벤트 리스너가 동작하여 항목 선택에 따른 처리를 수행할 수 있습니다.
항목 정렬 방식 변경하기
기본적으로 JComboBox의 항목들은 왼쪽 정렬(Left-aligned)로 표시됩니다. 하지만 UI 디자인에 따라 항목을 중앙에 배치해야 하는 경우가 있는데, 이때는 DefaultListCellRenderer 클래스의 setHorizontalAlignment(DefaultListCellRenderer.CENTER) 메서드를 활용하면 손쉽게 가운데 정렬로 변경할 수 있습니다.
정렬을 변경하는 절차는 다음과 같습니다.
1. DefaultListCellRenderer 객체를 생성합니다.
2. setHorizontalAlignment() 메서드에 CENTER 상수를 전달합니다.
3. JComboBox의 setRenderer() 메서드를 통해 해당 렌더러를 설정합니다.
예제 코드
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class JComboBoxAlignmentTest extends JFrame {
private JComboBox comboBox;
private DefaultListCellRenderer listRenderer;
public JComboBoxAlignmentTest() {
setTitle("JComboBoxAlignment Test");
setLayout(new FlowLayout());
Object[] items = new Object[] {"item 1", "item 2", "item 3", "item 4", "item 5", "item 6", "item 7"};
comboBox = new JComboBox(items);
add(comboBox);
listRenderer = new DefaultListCellRenderer();
listRenderer.setHorizontalAlignment(DefaultListCellRenderer.CENTER); // 항목 가운데 정렬
comboBox.setRenderer(listRenderer);
setSize(375, 250);
setResizable(false);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String []args) {
new JComboBoxAlignmentTest();
}
}실행 결과

위 코드를 실행하면 콤보 박스에 표시되는 선택된 값과 드롭다운 목록의 모든 항목이 화면 중앙에 정렬되어 나타나는 것을 확인할 수 있습니다. 이처럼 DefaultListCellRenderer를 활용하면 복잡한 커스텀 렌더링 없이도 간단하게 항목의 정렬 방식을 제어할 수 있습니다.