java事件处理机制
- 事件的相关信息被封装在一个事件对象中(一个参数),事件源将这个时间对象分发到它的所有监视器中,并有监视器对事件作出反应。
- AWT时间处理机制
- 监听器对象构造出一个实例,这个实例实现了监听器接口
- 事件源是一个对象实例,这个实例可以注册(添加)监听器,并发送事件(事件发送到监听器)
- 事件发生时,事件源将发送到所有被添加进事件源的监视器
- 监视器利用被发送过来的事件信息决定如何相应
3.一个事件源可以对应多个监视器,监听器接口ActionListener接口,这个接口中只包含一个方法
void actionPerformed(ActionEvent event) 参数是被发送来的事件,根据事件类型不同会有不同的类型。
4.关于创建button:
JButton x = new JButton(名字,图像);参数可以使1个也可以是两个
5.使用add方法将button加入画布
6.框架的构造器:a.构建画布 b.添加到画布的控件 c.构建监听器 d.将控件与监听器链接 e.将画布添加到框架
7.会经常遇到监听器需要对其他对象进行操作的情况,一种解决方法是设此监视器类作为该对象类的内部类,并且作者是这么建议的
8.使用方法event(这个是被发送的时间).getSource()得到发生事件的对象引用,.getActionCommand()方法返回与这个动作事件相关的命令字符串
9.创建包含一个方法的监听器也可以这样实现:EventHandler.create(ActionListener.class, frame(必须是一个公共类),"loadDate","source.text") 详述与P299 与反射机制有关
10.改变观感有两种方式:
a.静态方式:修改特定文件中的内容,只有在swing启动时会被设置一次
b.动态方式: 使用方法UIManager.setLookAndFeel(观感名字),找目标风格的观感;SwingUtilities.updateComponentTreeUI(框架.this(防止this被使用错误))刷新全部组件。
详述与P302;
11.关于java中的动作
“动作” 是监视器的扩充,它是基于监视器基础之上的,添加了图片,解释信息等功能,详述与P306
12.MouseEvent的对象实例成为鼠标事件,详述与P312
13.方法 getModifiersEx方法可以得到鼠标事件中的鼠标按钮和键盘饰符;在WIN32下 BUTTON3_DOWN_MASK可以检测鼠标右键这个时间,相关掩码的详述在p313
14.关于鼠标事件有两个独立的借口MouseListener接口和MouseMotionListener接口,后者负责鼠标的移动和拖动。
15.Cursor类中存在一个方法getPredefinedCursor方法,利用专用参数可以设置鼠标形状,详述与P313
16.AWT事件类的继承结构图 详述与p319
17.事件可以分为两类:语义事件和低级事件,关于这两种事件包含的事件类和相对应的事件接口以及事件适配器详述于p319~p320
18.关于适配器:每一个含有多个方法的AWT监视器接口,都配有一个自己的适配器,为了防止用于定义时的麻烦,可以设计一个继承适配器的类,然后只需要定义需要的接口方法就好,不将接口所有方法重新定义一遍。
19.监听器,频繁出现匿名局部类
20.对窗体(框架)的监听,被发送的事件类型为WindowEvent,监听器接口为WindowsListener,使用(框架).addWindows(){匿名局部类},添加关于框架(窗体)的事件监听器并连接。详述于p305
21.使用方法getNewState方法得到窗体的状态
22.一个监听器可以有多个事件源(例如鼠标点击事件和键盘组合键时间),swing包中提供了一个Action接口,它扩展与ActionListener接口。Action接口中除了actionPerformed方法,都在AbstractAction类中实现,所以可以使用类继承AbstractAction类再实现actionPerformed
23.可以根据“动作”构建按钮 JButton(动作变量实例名);
24.KeyStroke类封装了 对 “键” 的说明,构建这个类的对象实例,需要使用它的静态方法 .getKeyStroke方法,详述于p309
25.关于键盘指令与监视器的链接,详述于p311,:两个表,imap 包含键指令和它的id,amap包含id和动作(监视器), Input imap = .getInputmap("组合键描述"), input.put(放置键能与id对),
.getActionMap()得到 amap, .put(放置id与动作对);