如何在 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