如何在 Java 中实现可编辑的 JComboBox?


JComboBox

  • JComboBox 可以扩展 JComponent 类,并且它是 文本字段下拉列表的组合,用户可以选择一个值。
  • 如果控件的文本字段部分可编辑,用户可以在字段中输入值或编辑从下拉列表中检索的值。
  • 默认情况下,用户不被允许编辑 JComboBox 的文本字段部分中的数据。如果我们想允许用户编辑文本字段,则调用 setEditable(true) 方法。
  • 当用户对组合框执行操作时,JComboBox 可以生成 ActionListenerChangeListenerItemListener
  • 可以使用 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();
   }
}

输出

更新于:2020 年 2 月 10 日

1000+ 浏览量

开启你的 职业生涯

完成课程并获得认证

开始
广告