现在的位置: 首页 > 综合 > 正文

event学习笔记

2018年02月07日 ⁄ 综合 ⁄ 共 4827字 ⁄ 字号 评论关闭

授权事件模型

1、概念:一个源(source)产生一个事件(event)并把它送到一个或多个的监听器(listener),监听器--->一直等待--->接收--->处理--->返回.
2、优点:处理事件的应用程序和产生事件的用户接口程序分开.
3、条件:在授权事件模型中,监听器为了接受一个事件通知必须注册。
   好处:事件只被发送给那些想接受它们的监听器。
4、注意:Java允许处理事件而不采用授权事件模型,可通过扩展一个awt组件来实现.

 

事件

1、概念:事件是描述事件源状态改变的对象.
2、事件产生的原因:人与图形用户接口的交互 或 不是由于用户接口的交互而直接发生,如:定时器到期,软件或硬件错误发生,或一个操作完成.

 

事件源

1、概念:一个产生事件的对象.
2、事件源可能不止产生一种事件.
3、事件源必须注册监听器以便监听器可以接受某一特定事件的通知.
4、多播事件和单播事件:
   一个事件源可以注册多个监听器 --多播事件
   一个事件源只允许注册一个监听器 --单播事件
5、事件源允许注销一个特定事件
   public void removeTypeListener(TypeListener el)
  
  

事件监听器

1、概念:在事件发生时被通知的对象。
2、实现条件:
   在事件源中注册特定类型的事件
   实现处理事件通知的方法
  
  

事件类

1、类EventObject(java.util包中)是java事件类层次结构的根节点,是所有事件类的父类.
2、构造函数
   public EventObject(Object src);
3、EventObject类的两个方法:
  Object getSource() --返回事件源,等价于事件的一个字符串.
  public String toString()
4、AWTEvent类(java.awt包中)是EventObject类的子类,它在授权模型中被使用.
5、AWTEvent类的getID() -- 返回事件类型.
6、java.awt.event中的主要事件类
   ActionEvent  --通常在按下一个按钮,双击一个列表项或者选中一个菜单项时发生.
   AdjustmentEvent  --当操作一个滚动条时候发生.
   ComponentEvent --当一个组件隐藏、移动、改变大小或成为可见时发生.
   FocusEvent   --当一个组件获得或失去键盘焦点时发生.
   InputEvent   --所有组件的输入事件的抽象超类
   ItemEvent    --当一个复选框或列表被点击时发生;当一个选择框或一个可选择菜单的项被选择或取消时发生.
   KeyEvent    --当输入从键盘获得时发生.
   MouseEvent  --当鼠标被拖动,移动,点击,按下,释放时发生;或者在鼠标进入或退出某一组件时发生
   TextEvent  --当文本区和文本域的文本改变时发生.
   WindowEvent  --当一个窗口激活,关闭,失效,恢复,最小化,打开或退出时发生
  
  
  

ActionEvent 类

1、描述:在一个按钮被按下,列表框中的一项被选择,或者是一个菜单项被选择时都会产生一个ActionEvent 事件
2、四个表示功能修改的整型常量:
   ALT_MASK , CTRL_MASK , META_MASK ,SHIFT_MASK
   ACTION_PERFORMED  --用来标识事件
3、构造函数(两个):
   public ActionEvent(Object src,int type,String cmd);
   public ActionEvent(Object src,int type,String cmd,int modifiers)
  
   src  --事件源对象的引用
   type --事件类型
   cmd  --命令字符串
   modifiers -- 事件发生时,ALT,CTRL,META 或SHIFT 中的哪一个修改键被按下.
4、获取命令字符串(等同于某一事件源的getText()值)
   public String getActionCommand();
5、获取修改键
   int getModifiers()  --返回值 表示在事件产生时 修改键(ALT,CTRL,SHIFT,META)哪个被按下.
  
  
  
AdjustmentEvent 类
1、描述:一个AdjustmentEvent类的事件由一个滚动条产生.
2、事件类型(5种):
   BLOCK_DECREMENT   --用户点击滚动条内部减少这个值
   BLOCK_INCREMENT   --用户点击滚动条内部增加这个值
   TRACK        --滑块被拖动
   UNIT_DECREMENT    --滚动条端的按钮被点击减少它的值
   UNIT_INCREMENT    --滚动条端的按钮被点击增加它的值
3、构造函数(2个)
   public AdjustmentEvent(Adjustable src,int id,int type ,int data)
  
   src   --事件源的引用
   id    --等于ADJUSTMENT_VALUE_CHANGED 常量
   type  --指定事件的类型
   data  --与事件类型相关的数据
4、方法 Adjustable getAdjustable() 返回事件源,即产生事件的对象.  
5、方法 getAdjustmentType()  获得调整事件的类型,即上面的五中常量之一。
6、方法 getValue() 返回调整数量,即返回代表变化了的值.

 

ComponentEvent 类

1、描述:一个ComponentEvent事件通常在一个组件的大小,位置或者是可视性发生改变时产生.
2、事件类型(4种):
   COMPONENT_HIDDEN --组件被隐藏
   COMPONENT_MOVED --组件被移动
   COMPONENT_RESIZED --组件大小被改变
   COMPONENT_SHOWN --组件被显示
3、构造函数
   public ComponentEvent(Component src,int type)
  
   src  --事件源的引用
   type --事件类型,如上.
4、子类包括
   ContainerEvent,FocusEvent,KeyEvent,MouseEvent,WindowEvent;
5、public Component getComponent()  --返回产生事件的组件.

 

ContainerEvent 类

1、描述:一个ContainerEvent事件是在容器之中被加入或删除一个组件时产生.
2、事件类型(2种)
   COMPONENT_ADDED --容器添加一个组件
   COMPONENT_REMOVED --容器删除一个组件
3、构造函数
   public ContainerEvent(Component src,int type,Component comp);
  
   src --事件源
   type --事件类型
   comp --被添加或删除的组件
4、public Container getContainer() --返回事件源,即src.
5、public Component getChild()  --返回被加入或删除的组件,即comp.

 

FocusEvent类

1、描述:一个FocusEvent 是在组件获得或失去输入焦点时发生.
2、事件类型(2种)
   FOCUS_GAINED --获得输入焦点
   FOCUS_LOST --失去输入焦点
3、构造函数
   public FocusEvent(Component src,int type)
   public FocusEvent(Component src,int type,boolean temporaryFlag)
  
   src --事件源
   type --事件类型
   temporaryFlag --焦点事件是否是暂时的,是-true;否-false
4、boolean isTemporary()--判断焦点的改变是否是暂时的.

 

InputEvent类

1、描述:InputEvent抽象类是ComponentEvent类的子类,同时是一个组件输入事件的父类.
   子类包括:
   KeyEvent,MouseEvent
2、8 个用来获得和这个事件有关的修改符信息.
   ALT_MASK,BUTTON2_MASK,META_MASK,ALT_GRAPH_MASK,BUTTON3_MASK,SHIFT_MASK,BUTTON1_MASK,CTRL_MASK
  
3、测试是否在事件发生时相应的修改符被按下.
   isAltDown()
   isAltGraphDown()
   isControlDown()
   isMetaDown()
   isShiftDown()
4、int getModifiers() --返回包含这个事件所有修饰符的标志.

ItemEvent类

1、描述:当一个复选框或者列表框被点击,或菜单项被选择或取消选定时产生.
2、事件类型(2种):
   DESELECTED --用户取消选定
   SELECTED --用户选择一项
3、ITEM_STATE_CHANGED --表示一个状态的改变
4、构造函数
   public ItemEvent(ItemSelectable src,int type ,Object entry,int state)
  
   src  --事件源,一个产生事件组件的引用.如:列表或可选择元素
   type  --事件类型
   enter -- ?
   state --当前状态
  
5、Object getItem() --获得一个产生事件的项的引用.(这么别扭!)
6、ItemSelectable getItemSelectable() --获得一个产生事件的ItemSelectable 对象的引用.
7、列表框和可选框是实现了ItemSelectable接口的类.
8、int getStateChange() --返回事件对应的状态(如选择或取消).
  

KeyEvent 类

1、描述:一个KeyEvent事件是当键盘输入发生时产生.
2、事件类型(3)
   KEY_PRESSED --当键盘被按下
   KEY_RELEASED --当键盘被释放
   KEY_TYPED --当键盘产生一个字符时发生,如:SHIFT键不能产生字符.
3、VK常量(虚拟键值):与修改键(如control,shift或alt)不相关.
   VK_0 到 VK_9
   VK_A 到 VK_Z 
   其他
   VK_ENTER VK_ESCAPE VK_CANCE VK_UP
   VK_DOWN VK_LEFT  VK_RIGHT VK_PAGE_DOWN
   VK_PAGE_UP VK_SHIFT VK_ALT  VK_CONTROL
4、构造函数
   KeyEvent(Component src,int type,long when,int modifiers,int code)
   KeyEvent(Component src,int type,long when,int modifiers,int code,char ch)
  
   src --事件源
   type --事件类型
   when --当这个键被按下时,系统时间在when里被传递.
   modifiers -- 决定了在键盘事件发生时哪一个修改符被按下.
   code --虚拟键值 如:VK_UP,VK_A
   ch --如果与虚拟键值相对应的字符存在,则在ch中被传递.否则ch 为 CHAR_UNDEFINED.对于KEY_TYPED 事件,code 将是VK_UNDEFINED. 
5、char getKeyChar() --返回输入字符,否则 返回 CHAR_UNDEFINED.
6、int getKeyCode() --返回键值,否则 返回 VK_UNDEFINED.   
  

【上篇】
【下篇】

抱歉!评论已关闭.