public void keyTyped(KeyEvent e)
改为
public void keyPressed(KeyEvent e)
试一下

解决方案 »

  1.   

    还是没反应,我试着把KeyAdapter的三个函数都加上了
    // 安装消息响应函数
        addKeyListener(new java.awt.event.KeyAdapter()
        {
         public void KeyTyped(KeyEvent e)
         {
         System.out.println("Key Typed");
         }
        
         public void keyPressed(KeyEvent e)
         {
         System.out.println("Key Pressed");
        
         if (e.getKeyCode() == KeyEvent.VK_ESCAPE)
         XModelToolBox.curXModelObject = null;
         }
        
         public void KeyReleased(KeyEvent e)
         {
         System.out.println("Key Released");
         }
        });
    结果还是,不管我在哪个子窗体中按任何键都没有输出,怎么回事呢?
      

  2.   

    你是在Frame的构造函数中加的以上代码,如果不是的话,应该YourFrame.addKeyListener,查一下监听器是否添加到Frame上.
      

  3.   

    绝对肯定我的代码加在了MainFrame extends JFrame主窗口的构造函数中,为什么会这样?
      

  4.   

    试试这个代码吧!import java.awt.*;
    import java.awt.event.*;class Test extends Frame {

    public Test() {
         addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
         dispose();
         System.exit(0);
    }
         });
         addKeyListener(new java.awt.event.KeyAdapter()
         {
         public void keyPressed(KeyEvent e)
         {
              System.out.println("Key Pressed");
        
              if (e.getKeyCode() == KeyEvent.VK_ESCAPE)
         System.out.println("Key Pressed");
         }
         });
     } public static void main(String args[]) {
    Test mainFrame = new Test();
    mainFrame.setSize(400, 400);
    mainFrame.setTitle("Test");
    mainFrame.setVisible(true);
    }
    }
      

  5.   

    将这个:
    addKeyListener(new java.awt.event.KeyAdapter()...改为:
    getContentPane().addKeyListener(new java.awt.event.KeyAdapter()...试试看
      

  6.   

    to tsd3698(七夜) ,你试试在你的mainFrame中加个工具条,当光标停在工具条按钮上的时候键盘响应就失效了!
    虽然没有解决问题,但是谢谢各位,散分