请教各位大侠,如题,下面是很简单的一段代码:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;public class bk extends Applet implements KeyListener
{
Button b=new Button("ok");

public void init()
{
addKeyListener(this);
add(b);
}
public void keyPressed(KeyEvent e)
{
System.out.println("*********************keyPressed*********************");
}
public void keyTyped(KeyEvent e)
{
System.out.println("*********************keyTyped*********************");
}
public void keyReleased(KeyEvent e)
{
System.out.println("*********************keyReleased*********************");
}
}
上面的代码无论是在IE或是用appletviewer.exe都无法响应键盘,但是如果不add按钮,则可以响应,代码如下
import java.applet.*;
import java.awt.*;
import java.awt.event.*;public class bk extends Applet implements KeyListener
{
Button b=new Button("ok");

public void init()
{
addKeyListener(this);
//add(b);
}
public void keyPressed(KeyEvent e)
{
System.out.println("*********************keyPressed*********************");
}
public void keyTyped(KeyEvent e)
{
System.out.println("*********************keyTyped*********************");
}
public void keyReleased(KeyEvent e)
{
System.out.println("*********************keyReleased*********************");
}
}
请各位大侠指点迷津

解决方案 »

  1.   

    原因是焦点问题。
    要接受键盘事件的组件首先必须要先获得焦点,你加入按钮之后焦点跑按钮上去了,当然不能响应。
      

  2.   

    是的,但是如何让焦点不要跑到按钮上呢?直接一点说吧,这个问题如何解决
      

  3.   

    最后你是怎么解决的现在我遇到了同样的问题
      

  4.   

    这个问题我也遇到过,关注.....................................