java自定义类中如何开启键盘监听?
implementsKeyListener这个加到哪里才是合适的还有addKeyListener()应该怎么放置?importjava.awt.event.*;class...
implements KeyListener
这个加到哪里才是合适的
还有addKeyListener()
应该怎么放置?
import java.awt.event.*;
class player
{
如何在这里实现键盘监听的?
} 展开
这个加到哪里才是合适的
还有addKeyListener()
应该怎么放置?
import java.awt.event.*;
class player
{
如何在这里实现键盘监听的?
} 展开
2个回答
展开全部
给你找个例子,看看内部类和匿名内部类的区别:
protected abstract class ExtValueListener implements ActionListener
{
public ExtValueListener(String listenerName) {
this.listenerName = TOPIC_NAME + "." + listenerName + ".listener";
}
public String getListenerName() {
return listenerName;
}
}
-----------------------------------------
这里定义了一个抽象类,也就意味着这个类不能被生成实例对象,但是他的子类可以生成对象
在这个抽象类中定义了构造器,一个方法
-----------------------------------------
Source.addValueListener(new ExtValueListener() {
public void valueChanged(ValueInt value) {
if (!IsSetOk) {
setAllLimits();
} }
});
-----------------------------------------
现在来说说这段程序:
程序中的一个方法:Source.addValueListener(); 在这个方法中有一个匿名内部类:
new ExtValueListener() {
public void valueChanged(ValueInt value) {
if (!IsSetOk) {
setAllLimits();
} }
}
匿名内部类没有类名,直接就new ExtValueListener() ,这句语句说明生成了一个ExtValueListener抽象类的子类,但是这个子类是什么名字是不知道的,所以说是匿名内部类,就等同于在这里定义一个类来扩展ExtValueListener这个抽象类,下面的方法就是这个匿名内部类的方法,当然他是扩展了ExtValueListener类的,是ExtValueListener的子类,所以ExtValueListener类中的方法在这里也是可以使用的。
所以,你的addKeyListener实际上要用一个匿名内部类来实现。
protected abstract class ExtValueListener implements ActionListener
{
public ExtValueListener(String listenerName) {
this.listenerName = TOPIC_NAME + "." + listenerName + ".listener";
}
public String getListenerName() {
return listenerName;
}
}
-----------------------------------------
这里定义了一个抽象类,也就意味着这个类不能被生成实例对象,但是他的子类可以生成对象
在这个抽象类中定义了构造器,一个方法
-----------------------------------------
Source.addValueListener(new ExtValueListener() {
public void valueChanged(ValueInt value) {
if (!IsSetOk) {
setAllLimits();
} }
});
-----------------------------------------
现在来说说这段程序:
程序中的一个方法:Source.addValueListener(); 在这个方法中有一个匿名内部类:
new ExtValueListener() {
public void valueChanged(ValueInt value) {
if (!IsSetOk) {
setAllLimits();
} }
}
匿名内部类没有类名,直接就new ExtValueListener() ,这句语句说明生成了一个ExtValueListener抽象类的子类,但是这个子类是什么名字是不知道的,所以说是匿名内部类,就等同于在这里定义一个类来扩展ExtValueListener这个抽象类,下面的方法就是这个匿名内部类的方法,当然他是扩展了ExtValueListener类的,是ExtValueListener的子类,所以ExtValueListener类中的方法在这里也是可以使用的。
所以,你的addKeyListener实际上要用一个匿名内部类来实现。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询