我正在尝试学习适配器类。我从我正在阅读的书中看到了一个代码。这是代码:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class AdapterDemo extends Applet
{
public void init()
{
addMouseListener(new MyMouseAdapter(this));
}
}
这不是完整的代码。问题是编译器无法识别init()
内的MyMouseAdapter,但书中说它会。我正在阅读一本关于java 2的旧书。我的问题是什么原因以及它的解决方案。
答案 0 :(得分:2)
您将调用适配器MyMouseAdapter
- 所以除非您使用此名称创建自己的类,否则编译器将不知道它是什么。
尝试将MyMouseAdapter
更改为MouseAdapter
答案 1 :(得分:1)
我真的不完全理解上下文,但你可以像这样使用它:
public class AdapterDemo extends Applet
{
class MyMouseAdapter extends MouseAdapter{
[...]
}
public void init()
{
addMouseListener(new MyMouseAdapter());
}
}
但是为了简短的测试和理解,我建议你像这样使用MouseAdapter:
myButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseReleased(MouseEvent e) {
doSomething();
}
});
无论书籍是什么,我都希望详细了解MouseAdapter
here:)