Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java Swing에서 JComboBox 항목을 가운데 정렬하는 방법


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();
  }
}

실행 결과

Java Swing에서 JComboBox 항목을 가운데 정렬하는 방법

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