f.addMouseMotionListener(new MouseAdapter() {
public void mouseDragged(MouseEvent e)
{
String s="Mouse dragging :X = "+e.getX()+" Y= "+e.getY();
tf.setText(s);
}
});
我读到我们无法实例化抽象类的对象......但是我们正在创建
new MouseAdapter()
..有人可以解释这些匿名课程是如何完成的。谢谢你。
答案 0 :(得分:3)
您没有创建MouseAdapter
的实例,而是创建一个继承自MouseAdapter
的匿名类的实例。
更详细地说,这可以写成:
class Goo extends MouseAdapter { public void mouseDragged(){...} };
f.addMouseMotionListener(new Goo());
答案 1 :(得分:0)
你没有看到它并不意味着它不会发生。只需从代码中,您可以使用新的MouseAdapter()来构造对象。但是,如果您尝试读取.class文件中的内容,您会发现内部类具有名称, 通常的情况是,
class MouseAdapter$1 extends MouseAdapter
直到这个,你应该清楚一切。 :)