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

Java에서 편집 가능한 JComboBox 구현하는 방법

JComboBox란?

JComboBoxJComponent 클래스를 확장한 Swing 컴포넌트로, 사용자가 값을 선택할 수 있는 텍스트 필드드롭다운 목록이 결합된 형태입니다.

  • 컨트롤의 텍스트 필드 부분이 편집 가능하도록 설정되면, 사용자는 필드에 직접 값을 입력하거나 드롭다운 목록에서 가져온 값을 수정할 수 있습니다.
  • 기본적으로 JComboBox의 텍스트 필드 부분은 편집이 허용되지 않습니다. 사용자가 텍스트 필드를 편집할 수 있도록 하려면 setEditable(true) 메서드를 호출해야 합니다.
  • JComboBox는 사용자가 콤보 박스에서 작업을 수행할 때 ActionListener, ChangeListener 또는 ItemListener 이벤트를 발생시킬 수 있습니다.
  • getSelectedItem() 메서드를 사용하면 JComboBox에서 선택되었거나 입력된 항목을 가져올 수 있습니다.

예제 코드

아래 예제는 편집 가능한 JComboBox를 만들고, 사용자가 항목을 선택하거나 새로 입력할 때마다 해당 값이 JList에 추가되도록 구현한 코드입니다.

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class JEditableComboBoxTest extends JFrame {
    public JEditableComboBoxTest() {
        setTitle("JEditableComboBox Test");
        setLayout(new BorderLayout());
        final JComboBox combobox = new JComboBox();
        final JList list = new JList(new DefaultListModel());
        add(BorderLayout.NORTH, combobox);
        add(BorderLayout.CENTER, list);
        combobox.setEditable(true);
        combobox.addItemListener(new ItemListener() {
            public void itemStateChanged(ItemEvent ie) {
                if (ie.getStateChange() == ItemEvent.SELECTED) {
                    ((DefaultListModel) list.getModel()).addElement(combobox.getSelectedItem());
                    combobox.insertItemAt(combobox.getSelectedItem(), 0);
                }
            }
        });
        setSize(new Dimension(375, 250));
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
        setVisible(true);
    }

    public static void main(String[] args) throws Exception {
        new JEditableComboBoxTest();
    }
}

실행 결과

프로그램을 실행하면 상단에 편집 가능한 콤보 박스가 나타나며, 사용자가 직접 입력한 값이나 목록에서 선택한 값이 자동으로 아래의 리스트에 추가됩니다. 또한 입력된 값은 콤보 박스 목록의 맨 앞에 삽입되어 다음에 쉽게 재사용할 수 있습니다.

Java에서 편집 가능한 JComboBox 구현하는 방법