当前位置: 代码迷 >> J2SE >> JComboBox自动筛选,该怎么处理
  详细解决方案

JComboBox自动筛选,该怎么处理

热度:321   发布时间:2016-04-24 12:34:20.0
JComboBox自动筛选
JComboBox自动筛选问题,例如JComboBox有三项112、123、222。当输入1时则把222过滤掉,当输入12时则只显示123.
希望给出思路或简单代码,谢谢

------解决方案--------------------
.. keyPress 事件中 获取 comboBox 的 text ,然后轮循 里面的内容是不是以 12开始的, 是就放到一个 list 中,不是则不管,然后再把这个 comboBox item 重新设 为 list
------解决方案--------------------
恩,过去输入的数字后,用String的startsWith方法来作为判断,然后用1楼的方法,用一个list来存放要的内容。
------解决方案--------------------
楼上说的可以,这就是自动完成功能啊。
但不明白楼主在什么地方输入的,JComboBox可以输入码?????
------解决方案--------------------
探讨
楼上说的可以,这就是自动完成功能啊。
但不明白楼主在什么地方输入的,JComboBox可以输入码?????

------解决方案--------------------
Java code
import java.awt.FlowLayout;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import java.util.Vector;import javax.swing.JComboBox;import javax.swing.JFrame;import javax.swing.JTextField;public class JComboBoxDemo extends JFrame {    /**     *      */    private static final long serialVersionUID = 1L;    private JTextField jtf = null;    private JComboBox jcb = null;    private Vector<String> vdata = new Vector<String>();    private Vector<String> v2 = null;    public JComboBoxDemo() {        this.setLayout(new FlowLayout());        jtf = new JTextField(10);        jtf.addKeyListener(new MyAdapter());        this.add(jtf);        vdata.add("1");        vdata.add("32e");        vdata.add("22");        vdata.add("123");        v2 = new Vector<String>(vdata);        jcb = new JComboBox(vdata);        jcb.setSelectedIndex(0);        jcb.setEditable(true);        this.add(jcb);        this.setTitle("Demo");        this.setSize(600, 450);        this.setVisible(true);        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    }    /**     * @param args     */    public static void main(String[] args) {        // TODO Auto-generated method stub        new JComboBoxDemo();    }    class MyAdapter implements KeyListener {            @Override        public void keyPressed(KeyEvent e) {            // TODO Auto-generated method stub        }        @Override        public void keyReleased(KeyEvent e) {            // TODO Auto-generated method stub            String value = JComboBoxDemo.this.jtf.getText().trim();            JComboBoxDemo.this.jcb.removeAllItems();            for (String item : JComboBoxDemo.this.v2) {                if (item.startsWith(value)) {                    JComboBoxDemo.this.jcb.addItem(item);                }            }            JComboBoxDemo.this.jcb.validate();        }        @Override        public void keyTyped(KeyEvent e) {            // TODO Auto-generated method stub        }    }}
------解决方案--------------------
学习一下....
------解决方案--------------------
楼主的泡泡堂头像不错,JComboBox是可以设置成编辑的,你就改一下吧,看行不,总不能自己一点也不想吧,这样可不好啊。