事件处理机制三要素:
事件源:能够产生事件的组件
事件:用户对组件的一个操作
事件监听器:接收事件、解释事件并处理用户交互的方法处理事件源发生的事件
事件处理机制:当组件(比如 Button)被点击时就会产生ActionEvent事件,事件被传递给一个 ActionListener
对象,再由ActionListener 定义的方法来响应处理事件(自动调用ActionEvent)
当事件发生后,将某事件的对象传递给事件监听器(事件监听器实现了发生此事件所对应的接口),事件监听器会处理此事件,为了监视此事件,事件的处理方要先向发生方注册
事件有很多种,监听事件所实现的接口也有很多种。监听哪件事,就必须实现此事件的接口。事件与监听事件的接口一 一对应
按钮事件处理机制:
按钮事件(ActionEvent):组件的特定动作(比如被按下)发生时,由组件(比如 <code>Button</code>)生成此高级别事件
要使用键盘在 <code>Button</code> 上触发 <code>ActionEvent</code>,请使用空格键
监听器接口:ActionListener
一个监听器监听一个事件源对象
1个监听器监听多个事件源对象
TextField 对象可能发生Action(光标在文本框中敲回车)事件,与该事件对应的事件类是java.awt.event.ActionEvent.
java.awt.event.ActionListener接口处理ActionEvent事件
创建文本框并实现文本框输入显示到命令行中
文本框输入内容不可见
内部类:可以方便的访问包装类的成员变量或成员方法。
不允许或不需要被其他类访问
Graphic类:用于窗口画图,相当于画笔。
要想在哪个组件中画图,就在哪个组件中重写paint(Graphic g)方法。
paint方法在需要重画的时候自动调用。比如显示窗口,窗口最大化,最小化等
鼠标事件处理机制:
鼠标事件(MouseEvent):当且仅当动作发生时鼠标光标处于特定组件边界未被遮掩的部分上,才认为在该组件上发生了鼠标动作,生成此低级别事件
监听器接口:<code>MouseListener:鼠标事件</code>
MouseMotionListener:鼠标移动事件
对于以下动作,组件对象将生成此低级别事件:
鼠标事件
按下鼠标按键
释放鼠标按键
单击鼠标按键(按下并释放)
鼠标光标进入组件几何形状的未遮掩部分
鼠标光标离开组件几何形状的未遮掩部分
鼠标移动事件
移动鼠标 拖动鼠标
<code>实现了监听器接口的类:MouseAdapter,MouseMotionAdapter</code>
<code>创建的监听器一般不继承MouseListener,而是继承MouseAdapter。因为MouseListener接口有多于一个方法。但是实现后一般只使用一个方法。如果要实现接口,除了要使用的方法要重写外,其他不需要使用的方法也要重写成空方法,比较麻烦。而MouseAdapter已经把接口中的所有方法重写成空方法。如果继承MouseAdapter,只需要重写你需要的方法即可。</code>
<code></code>
<code></code>window事件处理:
window事件(WindowEvent):
监听器接口:WindowListener
<code>实现了监听器接口的类:WindowAdapter</code>
<code>实现关闭窗口</code>
<code>匿名类:</code>
<code>方法里的逻辑简单、语句比较少、不经常变动时使用</code>
<code>键盘事件处理机制:</code>
<code>键盘事件(KeyEvent):表示组件中发生键击的事件。当按下、释放或键入某个键时,组件对象(如文本字段)将生成此低级别事件。</code>
监听器接口:KeyListener
<code>实现了监听器接口的类:KeyAdapter</code>
当使用键盘上”向上箭头“键时,做出反应