简体   繁体   English

释放键上的可编辑JcomboBox Action事件不起作用

[英]Editable JcomboBox Action event on key released not working

I have a JComboBox named c , which i have kept editable , i want to call a function named search() whenever any key is pressed/released in that ComboBox ? 我有一个名为c的JComboBox,它一直保持可编辑状态,我想在该ComboBox中按下/释放任何键时调用一个名为search()的函数? i tried this but this neither calls my function nor does the job i have written in if() when the condition is true. 我试过了,但这既不调用我的函数,也不在条件为真时在if()中编写的工作。

Please let me know how to fire an action when a key is pressed from keyboard through an editable combobox , im using netbeans. 请让我知道如何使用netbeans通过可编辑的组合框从键盘按下键时触发操作。

private void cKeyReleased(java.awt.event.KeyEvent evt) {                              

     if(evt.getKeyCode()==KeyEvent.VK_A )
    {
        //DOES NOT EVEN ENTER THIS METHOD WHEN A IS PRESSED.
        try 
         {
             search();      // MY CALL TO FUNCTION
         }
         catch (ClassNotFoundException | SQLException ex)
         {
             Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
         }
    }

     if(evt.getKeyCode()==KeyEvent.VK_B )
    {
          try 
         {
             search();
         }
         catch (ClassNotFoundException | SQLException ex)
         {
             Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
         }
    }


     if(evt.getKeyCode()==KeyEvent.VK_C )
    {
          try 
         {
             search();
         }
         catch (ClassNotFoundException | SQLException ex)
         {
             Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
         }
    }


     if(evt.getKeyCode()==KeyEvent.VK_D )
    {
          try 
         {
             search();
         }
         catch (ClassNotFoundException | SQLException ex)
         {
             Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
         }
    }


     if(evt.getKeyCode()==KeyEvent.VK_E )
    {
         try 
         {
             search();
         }
         catch (ClassNotFoundException | SQLException ex)
         {
             Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
         }
    }


     if(evt.getKeyCode()==KeyEvent.VK_F )
    {
          try 
         {
             search();
         }
         catch (ClassNotFoundException | SQLException ex)
         {
             Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
         }
    }


     if(evt.getKeyCode()==KeyEvent.VK_G )
    {
          try 
         {
             search();
         }
         catch (ClassNotFoundException | SQLException ex)
         {
             Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
         }
    }


     if(evt.getKeyCode()==KeyEvent.VK_H )
    {
          try 
         {
             search();
         }
         catch (ClassNotFoundException | SQLException ex)
         {
             Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
         }
    }


     if(evt.getKeyCode()==KeyEvent.VK_I )
    {
        try 
         {
             search();
         }
         catch (ClassNotFoundException | SQLException ex)
         {
             Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
         }
    }


     if(evt.getKeyCode()==KeyEvent.VK_J )
    {
          try 
         {
             search();
         }
         catch (ClassNotFoundException | SQLException ex)
         {
             Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
         }
    }


     if(evt.getKeyCode()==KeyEvent.VK_K )
    {
          try 
         {
             search();
         }
         catch (ClassNotFoundException | SQLException ex)
         {
             Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
         }
    }


     if(evt.getKeyCode()==KeyEvent.VK_L )
    {
      try 
         {
             search();
         }
         catch (ClassNotFoundException | SQLException ex)
         {
             Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
         }
    }


     if(evt.getKeyCode()==KeyEvent.VK_M )
    {
          try 
         {
             search();
         }
         catch (ClassNotFoundException | SQLException ex)
         {
             Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
         }
    }


     if(evt.getKeyCode()==KeyEvent.VK_N )
    {
          try 
         {
             search();
         }
         catch (ClassNotFoundException | SQLException ex)
         {
             Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
         }
    }




     if(evt.getKeyCode()==KeyEvent.VK_O )
    {
          try 
         {
             search();
         }
         catch (ClassNotFoundException | SQLException ex)
         {
             Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
         }
    }


     if(evt.getKeyCode()==KeyEvent.VK_P )
    {
          try 
         {
             search();
         }
         catch (ClassNotFoundException | SQLException ex)
         {
             Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
         }
    }


     if(evt.getKeyCode()==KeyEvent.VK_Q )
    {
          try 
         {
             search();
         }
         catch (ClassNotFoundException | SQLException ex)
         {
             Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
         }
    }


     if(evt.getKeyCode()==KeyEvent.VK_R )
    {

          try 
         {
             search();
         }
         catch (ClassNotFoundException | SQLException ex)
         {
             Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
         }
    }


     if(evt.getKeyCode()==KeyEvent.VK_S )
    {

         try 
         {
             search();
         }
         catch (ClassNotFoundException | SQLException ex)
         {
             Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
         }
    }


     if(evt.getKeyCode()==KeyEvent.VK_T )
    {

          try 
         {
             search();
         }
         catch (ClassNotFoundException | SQLException ex)
         {
             Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
         }
    }



     if(evt.getKeyCode()==KeyEvent.VK_U )
    {

          try 
         {
             search();
         }
         catch (ClassNotFoundException | SQLException ex)
         {
             Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
         }
    }


     if(evt.getKeyCode()==KeyEvent.VK_V )
    {

          try 
         {
             search();
         }
         catch (ClassNotFoundException | SQLException ex)
         {
             Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
         }
    }

    if(evt.getKeyCode()==KeyEvent.VK_W )
    {

         try 
         {
             search();
         }
         catch (ClassNotFoundException | SQLException ex)
         {
             Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
         }
    } 

    if(evt.getKeyCode()==KeyEvent.VK_X )
    {
          try 
         {
             search();
         }
         catch (ClassNotFoundException | SQLException ex)
         {
             Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
         }
    }

     if(evt.getKeyCode()==KeyEvent.VK_Y )
    {

         try 
         {
             search();
         }
         catch (ClassNotFoundException | SQLException ex)
         {
             Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
         }

    }

   if(evt.getKeyCode()==KeyEvent.VK_Z )
    {

         try 
         {
             search();
         }
         catch (ClassNotFoundException | SQLException ex)
         {
             Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
         }
    }  

     if(evt.getKeyCode()==KeyEvent.VK_1 )
    {
          try 
         {
             search();
         }
         catch (ClassNotFoundException | SQLException ex)
         {
             Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
         }
    }


     if(evt.getKeyCode()==KeyEvent.VK_2 )
    {

          try 
         {
             search();
         }
         catch (ClassNotFoundException | SQLException ex)
         {
             Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
         }

    }


     if(evt.getKeyCode()==KeyEvent.VK_3 )
    {

          try 
         {
             search();
         }
         catch (ClassNotFoundException | SQLException ex)
         {
             Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
         }
    }


     if(evt.getKeyCode()==KeyEvent.VK_4 )
    {

          try 
         {
             search();
         }
         catch (ClassNotFoundException | SQLException ex)
         {
             Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
         }
    }


     if(evt.getKeyCode()==KeyEvent.VK_5 )
    {

          try 
         {
             search();
         }
         catch (ClassNotFoundException | SQLException ex)
         {
             Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
         }

    }


     if(evt.getKeyCode()==KeyEvent.VK_6 )
    {

          try 
         {
             search();
         }
         catch (ClassNotFoundException | SQLException ex)
         {
             Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
         }

    }


     if(evt.getKeyCode()==KeyEvent.VK_7 )
    {
          try 
         {
             search();
         }
         catch (ClassNotFoundException | SQLException ex)
         {
             Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
         }
    }


     if(evt.getKeyCode()==KeyEvent.VK_8 )
    {

          try 
         {
             search();
         }
         catch (ClassNotFoundException | SQLException ex)
         {
             Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
         }

    }


     if(evt.getKeyCode()==KeyEvent.VK_9 )
    {
         try 
         {
             search();
         } catch (     ClassNotFoundException | SQLException ex) 
         {
             Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
         }


    }


     if(evt.getKeyCode()==KeyEvent.VK_0 )
    {
         try 
         {
             search();
         }
         catch (ClassNotFoundException | SQLException ex)
         {
             Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
         }

    }


}       

I USED THIS , EVEN KEY LISTENER DID THE JOB , i did not need document listener @camickr trust me , all i wanted was how to use document listener , i still would love to use it ! 我使用了这个,即使是主讲人也没有工作,我不需要文档监听器@camickr相信我,我想要的只是如何使用文档监听器,我还是很乐意使用它! i repeat im new to java and im developing a project by reading question and answers molding them to fit my requirements ! 我重复Java的新知识,并通过阅读问题和答案来开发项目以符合我的要求! when i say i did my research , i mean i did it even before posting my question sir. 当我说我进行了研究时,我的意思是即使在发问先生之前我也进行了研究。 again a small snippet of how to use document listener would be of great help , as im using netbeans i just want to make a function call whenever key is typed in my editable combobox. 再次提供一小段有关如何使用文档侦听器的代码将对您大有帮助,因为使用netbeans时,我只想在可编辑组合框中键入键时进行函数调用。

import java.awt.Component;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.ComboBoxEditor;
import javax.swing.JComboBox;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JTextField;
import javax.swing.ListCellRenderer;
import javax.swing.text.DateFormatter;


public class Adhoc_JComboBox extends JFrame implements KeyListener{

private static JComboBox combobox; 
String a1,a2,a3;
public static void main(String[] args) {
new Adhoc_JComboBox();
}

private Adhoc_JComboBox(){
String array[]= new String[3];

a1=new String("a1");
a2=new String("a2");
a3=new String("a3");
array[0]= a1;
array[1]= a2;
array[2]= a3;
combobox = new JComboBox(array);
combobox.setEditable(true);
JTextField editor = (JTextField) combobox.getEditor().getEditorComponent();
editor.addKeyListener(this);
setLayout(new FlowLayout());
add(combobox);
pack();
setVisible(true);
}

public void keyTyped(KeyEvent arg0) {
System.out.println("Key Typed " +arg0.getKeyCode());
}

public void keyPressed(KeyEvent arg0) {
System.out.println("Key Pressed " +arg0.getKeyCode());
} 
public void keyReleased(KeyEvent arg0) {
System.out.println("Key Released " +arg0.getKeyCode());}}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM