如何在 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();
}
}輸出
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP