Java Swing 编程 JComboBox 实现模糊查找功能。

Posted lmqy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java Swing 编程 JComboBox 实现模糊查找功能。相关的知识,希望对你有一定的参考价值。

废话不多说,直接上代码。代码如下:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;

public class JComboBoxTest extends JFrame implements KeyListener {
    private JComboBox cbx;
    private JTextField jtf;
    public JComboBoxTest() {
        setSize(400, 300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Container c = getContentPane();
        c.setLayout(null);
        cbx = new JComboBox(getItems());
        cbx.setEditable(true);
        cbx.setBounds(20, 20, 80, 20);
        jtf = (JTextField)cbx.getEditor().getEditorComponent();
        jtf.addKeyListener(this);
        c.add(cbx);
        setVisible(true);
    }

    public void keyPressed(KeyEvent e) {}
    public void keyTyped(KeyEvent e) {}
    @SuppressWarnings("unchecked")
    public void keyReleased(KeyEvent e) {
        Object obj = e.getSource();
        if (obj == jtf) {
            String key = jtf.getText();
            cbx.removeAllItems();
            for (Object item : getItems()) {
                if (((String)item).startsWith(key)) { //这里是包含key的项目都筛选出来,可以把startsWith改成contains就是筛选以key开头的项目
                    cbx.addItem(item);
                }
            }
            jtf.setText(key);
        }
    }
    public Object[] getItems() {
        return new Object[] {
            "abcd", "acdef", "cdefg", "defg" 
        };
    }
    public static void main(String[] args) {
        new JComboBoxTest();
    }
}

原创不易,欢迎打赏。

技术图片

 

以上是关于Java Swing 编程 JComboBox 实现模糊查找功能。的主要内容,如果未能解决你的问题,请参考以下文章

Java swing JComboBox无法进行参数化

java GUI编程(swing)之四swing下拉框,列表框,滚动窗口

Java Swing jComboBox 未从数据库中填充

Java Swing应用程序 JComboBox下拉框联动查询

JAVA swing常用组件

如何在 Swing 中的 JTable 的列中添加不同的 JComboBox 项