2014-02-27 58 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 ......?