2014-02-27 110 views
1

我做了一個非常簡單的程序來理解KeyListener的工作原理,但由於某些原因,當任何鍵被擊中時,我的方法都沒有被調用。如果有人能給我一些意見,我會很感激。KeyListener方法不被稱爲

import java.applet.*; 
import java.awt.event.*; 


public class ClassOne extends Applet implements KeyListener { 


    public void init(){ 
     this.addKeyListener(this); 
    } 


    @Override 
    public void keyPressed(KeyEvent arg0) { 
     System.out.println("Pressed"); 

    } 

    @Override 
    public void keyReleased(KeyEvent k) { 
     System.out.println("Released"); 
    } 

    @Override 
    public void keyTyped(KeyEvent arg0) { 
     // TODO Auto-generated method stub 

    } 

} 
+0

小程序需要有重點。請參閱http://stackoverflow.com/questions/9504906/keylistener-events-apparently-not-firing-in-java-applet –

+0

這對我來說正好適合你。你確定這個applet在你打字時有重點嗎? –

+0

謝謝你的工作 – user3183586

回答

0

我需要設置初始化以下():

setFocusable(true); 
1

KeyListener s的設計提供關鍵的通知的組件,兩人登記只有當組件是可聚焦且有焦點。這意味着如果某些其他組件具有焦點(或者組件不可聚焦),它將不會響應關鍵事件。

更好的解決方案是使用Key Bindings API,但這需要您使用JApplet,這引出了一個問題,爲什麼您要使用Applet ......?