你的Frame上面有别的Component吧,一般Frame是其它Component的容器,所以键盘按下去后是里面的子Component监听到键盘事件的,而不是JFrame的。
所以才没有反应。

解决方案 »

  1.   

    考虑使用KeyStroke吧,它可以定义场景
    你可能应设为JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT看看文档吧.
      

  2.   

    让他先获得焦点试一试,应该可以的,看下面有“=======”的地方;
    //mykeyadapter.java
    import java.awt.*;
    import java.awt.event.*;public class mykeyadapter extends KeyAdapter
    {
    public void KeyPressed(KeyEvent keyevent)
    {
    System.out.println(String.valueOf(keyevent.getKeyChar()));
    }
    }
    //myframe.java
    import javax.swing.*;
    import java.awt.*;public class  myframe extends JFrame implements ActionListener
    {
            public myframe()
             {
                this.addKeyListener(new mykeyadapter());
                this.show();
    //============================================================
                this.requestFocus();
    //============================================================
             }
             public void actionPerformed(ActionEvent e)
    {
    }         public static void main(String[] argc)
             {
                  myframe xxx=new myframe();
              }}
    //其他代码省略了, 为什么我按了键以后没有任何反应(dos窗口中)。