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();
    }
}

原創不易,歡迎打賞。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM