1.java将事件的相关信息封装在一个事件对象(event object)中。
2.AWT事件处理机制的概要:
(1)监听器对象是一个实现了特定监听器接口的类的实例。
(2)事件源是能够注册监听器对象并发送事件对象的对象。
(3)当事件发生时,事件源将事件对象传递给所有注册的监听器。
(4)监听器对象利用事件对象中的信息决定任何对时间做出的响应。
图形表示为:
3.适配器类:每个含有多个方法的AWT监听器接口都配有一个适配器(adapter)类,这个类实现了接口中的所有方法,但每个方法没有做任何事情。可以通过扩展适配器类来指定对某些事件的响应动作,而不必实现接口中的每个方法。
4.用同一个动作响应按钮,菜单项或击键的方式:
(1)实现一个扩展于AbstractAction类(实现了Action接口的类,Action接口实现了ActionListener接口)的类。多个相关的动作相关的动作可以使用同一个类。
(2)构造一个动作类的对象。
(3)使用动作对象创建按钮或菜单项。构造器将从动作对象中读取标签文本和图标如:JButton button1 = new JButton(Action a);
(4)为了能够通过击键触发动作,必须额外的指向几步操作。首先定位顶层窗口组件,例如包含所有其他组件的面板。
(5)然后,得到顶层组件的WHEN_ANCESTOR_OF_FOCUS_COMPONENT输入映射。语句表示为:
InputMap imap = buttonPanel.getInputMap(JCompenent.WHEN_ANCESTOP_OF_FOCUS_COMPONENT)其中的buttonPanel为顶层窗口组件。为需要的击键创建一个KeyStroke对象。创建一个描述动作字符串这样的动作键对象,将(击键,动作键)对添加到输入映射中。语句表示为imap.put(KeyStroke.getStroke("ctrl Y"),"panel.yellow");
(6)最后,得到顶层组件的动作映射。将(动作键,动作对象)添加到映射中。如:ActionMap amap = button.getActionMao();
amap.put(“panel.yellow”,yellowAction);