日期:2014-05-20  浏览次数:20757 次

高手看看下面的代码哪里错了
import java.awt.*;
import java.awt.event.*;
public class SeperateListenersTest extends Frame{
   private KeyEventHandler keyListener = new KeyEventHandler();
   private WindowCloser windowListener = new WindowCloser();
   //初始化下面编写的两个类的对象,它们同时也是接口类型
   public SeperateListenersTest(){
      addKeyListener(keyListener);            //注册监听键盘的接口
      addWindowListener(windowListener);      //注册监听窗口的接口
      setSize(200,200);
      setVisible(true);
   }
   public static void main(String args[])
   { SeperateListenersTest p = new SeperateListenersTest(); }
 }


提示KeyEventHandler和WindowCloser
“can not be resolved to a type”

------解决方案--------------------
错误提示的意思是:不能解决这一类型 提示的已经很清楚!我复制你的代码在eclipse上调试了,结果是如下:
Exception in thread "main" java.lang.Error: Unresolved compilation problem: 

at SeperateListenersTest.main(SeperateListenersTest.java:13)
抛出“尚未解决的编译问题”的异常,也就是说编译器根本找不到KeyEventHandler和WindowCloser这两个类或者接口,然后我查了java API文档,也搜不到这两个类(接口),只是看到了与KeyEventHandler最相近的KeyEventDispatcher类和与WindowCloser最相近的WindowEvent类,再查看了java.awt包和java.awt.event包下的接口,也没发现这两个接口……而且Frame中的addWindowListener()中的参数类型是WindowListener类型,并不是WindowCloser,说到这里我就想问你了,private WindowCloser windowListener = new WindowCloser();你这是利用java的父类引用指向子类对象的多态原理吗?你确定WindowCloser存在,并且它是类WindowListener的父类或者父接口吗?对KeyEventHandler的分析也同理……所以,建议你首先确定你是否正确拼写了KeyEventHandler和WindowCloser,然后确定这两个类是否真的存在,具体在哪个包,怎么使用,是否需要经过包装或者要借助于别的类或者接口一起使用。如何这样都无法解决你的问题,那么建议自定义这两个类或者接口,然后调用之,实现你想实现的功能……说真的,我还真不懂你这样写的用意是什么?