用我自己的方式理解事件。
:::
:::
()每个对象都有它的堆栈和运行空间,以及相应的表结构。表中记录有与该对象有关的信息。
而所谓的给某一个源对象注册一个事件,其实就是:在给对象的相应的表结构中,
添加: 事件A | 事件A的处理方法的函数入口地址
于是,当一个事件A,产生时,那么,给对象通过查表,可以看到该事件A的处理方法函数的入口地址
因此,所谓的注册就是,告诉编译器到那里去找它的处理方法,即:让该组件对象记录下,监听器在内存中的函数入口点地址。
还有一个问题:
如何理解事件监听器接口???
监听器有俩个内容:
()1.是 监听器接口
()2.是 接口方法
对于:
class A implements ActionListener // 定义一个class 名字为A,用于实现接口:ActionListener接口。
{
public void actionPerformed(ActionListener) // 重定义接口中的 actionPerformed()方法。
{
System.out.println("今天天气不错!");
}
}
public static void main(String[] args)
{
Frame f=new Frame(); // 创建了一个框架对象。
Button bn=new Button("OK!"); // 创建了一个按钮对象。
f.add(bn); // 调用框架的add()方法,把按钮对象,添加到框架中。
A aa=new A(); //创建一个事件对象。
bn.addActionListener(aa); // 即:给按钮对象注册一个事件//向鼠标按钮添加一个动作监听器。用aa来监听bn按钮。
即:告诉bn可以产生aa事件。
f.pack();
f.setVisible(true);
}
问题:
()这里的 implements 是什么意思?
()怎么理解 implements???
() implements 和extends 的区别是什么???
() 监听器接口是不是所谓的 抽象类??? 而每一个抽象类都需要有相应的实现 ??
:::
:::
()每个对象都有它的堆栈和运行空间,以及相应的表结构。表中记录有与该对象有关的信息。
而所谓的给某一个源对象注册一个事件,其实就是:在给对象的相应的表结构中,
添加: 事件A | 事件A的处理方法的函数入口地址
于是,当一个事件A,产生时,那么,给对象通过查表,可以看到该事件A的处理方法函数的入口地址
因此,所谓的注册就是,告诉编译器到那里去找它的处理方法,即:让该组件对象记录下,监听器在内存中的函数入口点地址。
还有一个问题:
如何理解事件监听器接口???
监听器有俩个内容:
()1.是 监听器接口
()2.是 接口方法
对于:
class A implements ActionListener // 定义一个class 名字为A,用于实现接口:ActionListener接口。
{
public void actionPerformed(ActionListener) // 重定义接口中的 actionPerformed()方法。
{
System.out.println("今天天气不错!");
}
}
public static void main(String[] args)
{
Frame f=new Frame(); // 创建了一个框架对象。
Button bn=new Button("OK!"); // 创建了一个按钮对象。
f.add(bn); // 调用框架的add()方法,把按钮对象,添加到框架中。
A aa=new A(); //创建一个事件对象。
bn.addActionListener(aa); // 即:给按钮对象注册一个事件//向鼠标按钮添加一个动作监听器。用aa来监听bn按钮。
即:告诉bn可以产生aa事件。
f.pack();
f.setVisible(true);
}
问题:
()这里的 implements 是什么意思?
()怎么理解 implements???
() implements 和extends 的区别是什么???
() 监听器接口是不是所谓的 抽象类??? 而每一个抽象类都需要有相应的实现 ??