JComboBox自动筛选问题,例如JComboBox有三项112、123、222。当输入1时则把222过滤掉,当输入12时则只显示123.
希望给出思路或简单代码,谢谢

解决方案 »

  1.   

    ..  keyPress 事件中 获取 comboBox 的 text ,然后轮循 里面的内容是不是以 12开始的, 是就放到一个 list 中,不是则不管,然后再把这个 comboBox  item 重新设 为 list
      

  2.   

    恩,过去输入的数字后,用String的startsWith方法来作为判断,然后用1楼的方法,用一个list来存放要的内容。
      

  3.   

    楼上说的可以,这就是自动完成功能啊。
    但不明白楼主在什么地方输入的,JComboBox可以输入码?????
      

  4.   


    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 } }}
    好长时间不写swing了,仅供参考
      

  5.   

    5楼的是不错,可是我想实现直接在JComboBox 输入,或者做个效果用JTextField实现也行啊,不能把JTextField 和JComboBox 分开,我只是想让用户只能看到JComboBox 。
      

  6.   

    楼主的泡泡堂头像不错,JComboBox是可以设置成编辑的,你就改一下吧,看行不,总不能自己一点也不想吧,这样可不好啊。
      

  7.   

    你真幽默,不想能想着实现啊,试验了。“JComboBox是可以设置成编辑的”如果不能编辑我的问题还有意义吗?真是的