Java的事件处理模型分成事件源、事件对象、事件侦听器三个基本要素:
1. 事件源指的是组件或容器(即事件发生所在);
2. 事件对象和事件侦听器都定义在java.swing.event中,事件对象一般以Event结尾(如KeyEvent、MouseEvent);
3. 事件侦听器一般以Listener结尾(如KeyListener、MouseListener)。事件侦听器接口中规定了处理响应事件必须实现的方法,java.swing.event中还定义了一种以Adapter的事件适配器(如KeyAdapter、MouseAdapter),他们的区别在于实现事件侦听器的类需要实现该侦听器的所有成员方法,而实现事件适配器的类只需要实现其中所需要的成员方法。
要想处理事件需要先在事件源中注册事件侦听器,收到事件时会触发对应侦听器。不同的组件、容器能够触发的事件不同,例如只有JList能够触发ListSelectionEvent,通过JList成员方法public void addListSelectionListener(ListSelectionListener a)来注册侦听器。可以通过事件对象的public Object getSource()方法返回当前事件源。