java - Editable JComboBox KeyPressed not working -



have code designed editable jcombobox listen keypressed event , show message key pressed. have no idea why not working. as beginner might have gone wrong logically/conceptually.

so, request suggestions how construct code, works.

code

import javax.swing.*; import java.awt.*;  public class testejcbx extends jframe {     jcombobox jcbx = new jcombobox();      public testejcbx() {         super("editable jcombobox");         jcbx.seteditable(true);          getcontentpane().setlayout(new flowlayout());         getcontentpane().add(jcbx);          jcbx.addkeylistener(new java.awt.event.keyadapter() {             public void keypressed(java.awt.event.keyevent evt)              {                 jcbxkeypressed(evt);             }         });          setsize(300, 170);         setvisible(true);     }     private void jcbxkeypressed(java.awt.event.keyevent evt) {                                              joptionpane.showmessagedialog(null, "key pressed");     }      public static void main(string argv[]) {         new testejcbx();     } } 

you shouldn't using keylistener sort of thing. rather if want detect changes combo box's editor component, extract , add documentlistener it:

import javax.swing.*; import javax.swing.event.documentevent; import javax.swing.event.documentlistener; import javax.swing.text.document; import java.awt.*;  public class testejcbx extends jframe {    jcombobox<string> jcbx = new jcombobox<>();     public testejcbx() {       super("editable jcombobox");       setdefaultcloseoperation(jframe.dispose_on_close);       jcbx.seteditable(true);        getcontentpane().setlayout(new flowlayout());       getcontentpane().add(jcbx);        jtextfield editorcomponent = (jtextfield) jcbx.geteditor()             .geteditorcomponent();        document doc = editorcomponent.getdocument();       doc.adddocumentlistener(new documentlistener() {           @override          public void removeupdate(documentevent e) {             system.out.println("text changed");          }           @override          public void insertupdate(documentevent e) {             system.out.println("text changed");          }           @override          public void changedupdate(documentevent e) {             system.out.println("text changed");          }       });        pack();       setlocationrelativeto(null);       setvisible(true);    }     public static void main(string argv[]) {       new testejcbx();    } } 

Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -