Chinaunix首页 | 论坛 | 博客
  • 博客访问: 594277
  • 博文数量: 841
  • 博客积分: 5000
  • 博客等级: 大校
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-28 10:08
文章分类

全部博文(841)

文章存档

2011年(1)

2008年(840)

我的朋友

分类:

2008-10-28 10:15:14

       SWT中如果添加一个Lost Focus事件后,会发现当窗体切换、最小化窗体等事件发生的时候都会激发Lost Focus事件,这显然不过友善。传统意义上的Lost Focus事件应该是只有焦点迁移到单前窗体中的某个空间的时候才需要激发Lost Focus事件。但是由于RCP程序中,一个窗体可能包含多个View和Editor,所以这个Listener实现了当焦点迁移到指定Composite中时,激发LostFocus事件。
    二、事件代码

    三、使用方式
    1、监听指定容器的Lost Focus事件
    // 监听指定容器的Lost Focus事件
        DCFocusLostListener listenter = new DCFocusLostListener(cmpParent, m_Control) {
            public void dcFocusLost(FocusEvent event) {
                // TODO 业务处理
            }
        };
    // 如果控件已经取得了焦点,就需要手工调用registerFilter()
        listenter.registerFilter();
    2、监听窗体的Lost Focus事件
    // 监听窗体的Lost Focus事件
        DCFocusLostListener listenter = new DCFocusLostListener(shell, m_Control) {
            public void dcFocusLost(FocusEvent event) {
                // TODO 业务处理
            }
        };
    package study.swt.event;
    import org.eclipse.swt.SWT;
    import org.eclipse.swt.events.FocusEvent;
    import org.eclipse.swt.events.FocusListener;
    import org.eclipse.swt.widgets.Composite;
    import org.eclipse.swt.widgets.Control;
    import org.eclipse.swt.widgets.Event;
    import org.eclipse.swt.widgets.Listener;
    /**
     * 系统名称:Digital Cinema心得--SWT学习与使用

     * 技能名称:监听指定范围内lost Focus事件的监听器

     * 处理说明:SWT中如果添加一个Lost Focus事件后,会发现当窗体切换、最小化窗体等事件发生的时候都会激发Lost Focus事件,这显然不过友善。传统意义上的Lost Focus事件应该是只有焦点迁移到单前窗体中的某个空间的时候才需要激发Lost Focus事件。但是由于RCP程序中,一个窗体可能包含多个View和Editor,所以这个Listener实现了当焦点迁移到指定Composite中时,激发LostFocus事件。。

     * 变革履历:2007/10/16 MuChunYu Create

     *

     *
     * @author Mu ChunYu
     * @version 1.0 2007/07/04 初版
     *


     */
 

[1]   

【责编:landy】

--------------------next---------------------

阅读(448) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~