patternList.setEditable(false);
后就能收到键盘事件了

解决方案 »

  1.   

    to okwuzhijun:
      如果patternList.setEditable(false);
      那键盘还能输入吗?
      

  2.   

    to okwuzhijun:
       你说的说对的,问题是我想根据输入的字符来改变JComboBox的Items, 就是如何能实现根据输入的内容来模糊查找匹配的项目,让用户更加容易选择。
      

  3.   

    我想应该不会吧,假如真的话,你使将JComboBox中的所有子部件都加上KeyListener试试!
    因为JComboBox是容器控件,可能你的输入焦点就根本不在JComboBox上面,而在起子部件上如Label上
      

  4.   

    如果JComboBox.setEditable(false),
       1、那么当在JComboBox的Item中没有需要的内容,而想添加新的内容时,如何办? 
       2、当JComboBox的Item有上万条时,如何办?下拉的内容不时很多?
      

  5.   

    JComboBox把搜索和匹配的工作交给了JComboBox.KeySelectionManager(键选取管理器)接口的对象来完成。JComboBox的每一个实例都维护着实现了KeySelectionManager接口的一个对象的引用。当一个键被按下去的时候,就会调用键选取管理器中的selectionForKey()方法,这样就可以获得选取项的索引。缺省的时候,JComboBox使用的是JComboBox.DefaultKeySelectionManager。具体可以查看API。
      

  6.   

    我记得好像 actionPerformed这个监听事件就可以监听到键盘的动作1       
    patternList .addActionListener(new ActionListener()
           {
               public void actionPerformed(ActionEvent e)
               {
                   clearMsgBar();
               }
           });