1、监听器一定是恰当的监听器接口的实例!!:因为这样是确保监听器能有正确处理该事件的正确方法。
通过addXListener对监听器进行注册和实现(即监听器必须由源对象进行注册这需要根据具体的事件类型而定):
例子:JButton jbtok = new JButton("ok");
ActionListener listener = new OKListener();
jbtok.addActionListener(listener)
JButton组件触发了一个行为事件(ActionEvent)。其监听器对象必须是ActionListener的实例,然后源对象调用addActionListener注册监听器。源对象JButton对象产生一个ActionEvent对象,并以它为参数调用监听器的actionPerformed方法处理事件。
2、一个源可以由多个监听器么?一个监听器可以监听多个源么?一个源可以是自身的监听器么?
答:一个源可以有多个监听器,因为一个源可以触发多个事件,每个事件都有单独的监听器,所以可以有多个监听器。
监听器是由源对象进行注册,而且依赖具体的事件,因此一个监听器只可以监听一个源(我的理解,但是javax.swing包中可以将一个监听器添加到多个事件源中)。所以一个源能不能是自身的监听器。
3、根据内部类的声明的具体的修饰符决定它是否可以在不嵌套它的其他类中调用。
4、通过e.getSource获得事件的源;通过e.getWhen获得行为事件发生的事件,比如键盘何时按下,鼠标何使动作;使用e.getX();e.getY();获得鼠标事件的点击的位置;使用e.getKeyChar()获得键盘事件的键字符。
5、鼠标的按下、释放、点击、移入、退出的监听器接口为:MouseListener。鼠标移动、拖动的监听器接口是MouseMotionListener