2016-04-04 17 views
0

KeyEvent çalışmamı almaya çalışıyorum. Ne yazık ki keyTyped(KeyEvent e) yanıt vermiyor. :)Java Swing | Anahtar dinleyici hiç cevap vermiyor

KeyEvnet'i sınıfıma uyguladım.

aşağıdaki gibi dinleyici atanan:

JTextfield searchBar = new JTextField(); 
searchBar.addKeyListener(this); 

Benim anahtar olay şöyle görünür:

@Override 
public void keyTyped(KeyEvent e) { 
    if (e.getKeyCode() == KeyEvent.VK_ENTER) { 
     System.out.println("pressed"); 
     try { 
      int browser = getSelectBrowser().getSelectedIndex(); 
      logic.search(searchBar.getText(), searchInfo, browser, isURL); 
     } catch (InterruptedException ie) { 
      System.out.println("Pressed fail"); 
     } 
     this.repaint(); 
    } 
} 

Ben de ikinci bir test Gui'de Dinleyici çalıştı ve o da çalışmıyor idi.

:-)

+1

"* Çalışmıyor *" kabul edilebilir bir sorun açıklaması değil. http://stackoverflow.com/help/how-to-ask –

+0

'' '' inizin dışında bir 'System.out.println (...)' yazmayı denediniz mi? – Tiz

+0

@Tiz System.out.println (...) sadece dinleyiciden geçip geçmediğini kontrol etmek içindir;) Bir println() ile çalışmalıdır. – WetWer

cevap

0

kullanım yerine "keyTyped" nin "keyPressed". keyTyped yalnızca alfanümerik karakterleri dinler

+0

lol: bastığım her şey bana 0 – WetWer

+0

"keyTyped" yerine "keyPressed" yazıyor. keyTyped sadece alfanümerik chars dinler – licklake

+0

teşekkürler kardeşim! işe yaradı! – WetWer

0

Girişe bastığınızda bu dinleyiciyi görmeyeceksiniz, bu nedenle println asla çağrılmayacaktır. Bir JTextField numarasına girmek için, varsa ActionListener numaralı telefonu arayın.

Çalışmaya başlamak için metin alanına bir ActionListener ekleyin ve buraya girerken çalıştırmak istediğiniz kodu ekleyin.

Bu konuda daha fazlasını okuyabilirsiniz here. Yorumlarda bunu bağlamak için tak3shi'a teşekkürler.