import java.awt.*;
import java.awt.event.*;public class KeyEvent {
public static void main(String[] args) {
new MainFrame().launchFrame();
}
}class MainFrame extends Frame { public void launchFrame() {
this.setBounds(500,100,500,500);
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
this.addKeyListener(new MyKeyMoniter());
}

class MyKeyMoniter extends KeyAdapter {
public void keyPressed(KeyEvent e) {
int keyCode = e.getKeyCode();//编译时说找不到,或者没有定义
if(keyCode == KeyEvent.VK_UP) {
System.out.println("OK");
}
}
}
}

解决方案 »

  1.   

    你的代码没问题   你的类命名不规范哦 是关键字KeyEvent
      

  2.   

    因为你自己定义的类名字就叫KeyEvent,结果编译器把e认为是你自己定义的类的实例对象。
    改成这样强制指定KeyEvent为JDK提供的KeyEvent
    当然更好的办法是你的自定义类不要用KeyEvent为名字 public void keyPressed(java.awt.event.KeyEvent e) {
    int keyCode = e.getKeyCode();// 编译时说找不到,或者没有定义
    if (keyCode == java.awt.event.KeyEvent.VK_UP) {
    System.out.println("OK");
    }
    }