江湖弟兄姊妹,路过的,走过的,仔细瞧一瞧,救助落难的的羊!
代码开发背景:我在JcomboBox实现可编辑并且要求拼音检索物品名称。
思路:
(1)初始化商品检索下拉选择框
 private void initSpPyBox() {
         ....  
 }(2)实现键盘事件的注册(这步出问题了):
 private final JComboBox spPy = new JComboBox(); //商品拼音检索
  setupComponet(new JLabel("拼音检索:"), 4, 1, 1, 0, true);
      setupComponet(spPy, 5, 1, 140, 0, true);//排版布局
        spPy.setEditable(true);
//事件监听器注册
        spPy.getEditor().getEditorComponent().addKeyListener(new KeyAdapter() {
            public void keyPressed(KeyEvent evt) {
                Object obj = evt.getSource(); //VK_ALPHANUMERIC
                if (65<= evt.getKeyCode() && evt.getKeyCode()<=90) {
                    initSpPyBox();------//对于键盘输入a-z的相应调用initSpBox()
                }else if(evt.getKeyCode() == 13){
                    SwingUtil.enterPressesWhenFocused(sellButton);//对于回车的相应,调用相应buttong按钮
                }            }
        });
 拦路虎:(2)对于我任何键盘输入没有响应
求救!

解决方案 »

  1.   

    把你的業務邏輯都換成輸出了  應該可以啊   import java.awt.BorderLayout;
    import java.awt.Container;
    import java.awt.event.KeyAdapter;
    import java.awt.event.KeyEvent;import javax.swing.JComboBox;
    import javax.swing.JFrame;
    import javax.swing.JLabel;public class testComboBox {

    public static void main(String []args){
    JFrame frame = new JFrame();
    Container cp = frame.getContentPane();
    JComboBox spPy = new JComboBox(); 
            spPy.setEditable(true); 
            spPy.getEditor().getEditorComponent().addKeyListener(new KeyAdapter() { 
                public void keyPressed(KeyEvent evt) { 
                    if (65 <= evt.getKeyCode() && evt.getKeyCode() <=90) { 
                     System.out.println("222222");
                    }else if(evt.getKeyCode() == 13){ 
                        System.out.println("1111");
                    } 
                } 
            }); 
            
            cp.add(spPy,BorderLayout.NORTH);
            frame.pack();
            frame.setVisible(true);
    }
    }
      

  2.   

     是啊,我也很郁闷...但在我的project里就不行!
      

  3.   


    import java.awt.BorderLayout;
    import java.awt.Container;
    import java.awt.event.KeyAdapter;
    import java.awt.event.KeyEvent;import javax.swing.JComboBox;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JTextField;public class testComboBox {

    public static void main(String []args){
    JFrame frame = new JFrame();
    Container cp = frame.getContentPane();
    final JComboBox spPy = new JComboBox(); 
            spPy.setEditable(true); 
            spPy.getEditor().getEditorComponent().addKeyListener(new KeyAdapter() { 
                public void keyReleased(KeyEvent evt) { 
                    if (65 <= evt.getKeyCode() && evt.getKeyCode() <=90) { 
                     System.out.println(((JTextField) spPy.getEditor().getEditorComponent()).getText());
                    }else if(evt.getKeyCode() == 10){ 
                        System.out.println("1111");
                    } 
                } 
            }); 
            
            cp.add(spPy,BorderLayout.NORTH);
            frame.pack();
            frame.setVisible(true);
    }
    }