首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

关于java事件监听的小疑点

2012-03-23 
关于java事件监听的小问题public clss KeyEventemo Extends Frame impments Keyistener{Button new Butto

关于java事件监听的小问题
public clss KeyEventemo Extends Frame impments Keyistener{

Button =new Button();
Button.addKeyListener(this)

然后把addKeyListener接口的三个方法重写
public void KeyPressed(KeyEvent eve){}
public void KeyRelease(KeyEvent eve){}
public void KeyType(KeyEvent eve){}


}
和我用内部类 ,匿名类来写事件有什么区别。。

是不是这三种方法都适用?

[解决办法]
这个没有太大区别,只要接口实现的业务逻辑一样

如果有区别的话,你现在的这种写法更加方便一些,因为这样实现接口实现方法可以引用到KeyEventemo类的所有

属性,而如果要使用内部类的话,只能使用KeyEventemo里面声明为final的变量,内部类的使用需要将一些相关变

量设置为final,对于值会变化的常量,这是不可能的,只能用你现在 “自己侦听自己”的设计模式
[解决办法]
区别不大
离开了这个Frame的业务,这个监听器就没什么太大的用途了,也就是说没有什么所谓的代码重用的价值,所以直接在主类impelents也比较方便
用内部类或匿名类,对于外部类的局部变量的访问有一定的限制,不过可以改用外部类的成员变量,非要使用局部变量,那么就要用final,这样局部变量就不能再发生变化,所以要根据情况而决定

[解决办法]

探讨
public clss KeyEventemo Extends Frame impments Keyistener{

Button =new Button();
Button.addKeyListener(this)

然后把addKeyListener接口的三个方法重写
public void KeyPressed(KeyEvent eve){}
public void Key……

热点排行