如何在 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+ 瀏覽量

開啟你的 職業生涯

完成課程並獲得認證

開始
廣告
© . All rights reserved.