Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 편집 가능한 JComboBox를 어떻게 구현할 수 있습니까?

<시간/>

JComboBox

  • JComboBox JComponent 확장 가능 클래스이며 텍스트 필드의 조합입니다. 및 드롭다운 목록 사용자가 값을 선택할 수 있습니다.
  • 컨트롤의 텍스트 필드 부분이 편집 가능한 경우 사용자는 필드에 값을 입력하거나 드롭다운 목록에서 검색된 값을 편집할 수 있습니다.
  • 기본적으로 사용자는 JComboBox의 텍스트 필드 부분에 있는 데이터를 편집할 수 없습니다. . 사용자가 텍스트 필드를 편집할 수 있도록 하려면 setEditable(true) 을 호출하십시오. 방법.
  • JComboBox ActionListener를 생성할 수 있습니다. , ChangeListener 또는 ItemListener 사용자가 콤보 상자에서 작업할 때.
  • getSelectedItem() 메소드를 사용하여 JComboBox에서 선택하거나 입력한 항목을 가져올 수 있습니다.

예시

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를 어떻게 구현할 수 있습니까?