选择事件

选择事件是在选择块发生变化后发出。
table.addKDTSelectListener(new KDTSelectListener()
{
    public void tableSelectChanged(KDTSelectEvent e){
    // 获取上一个选择块
    KDTSelectBlock sbPrev = e.getPrevSelectBlock();
    // 获取当前选择块
    KDTSelectBlock sbCurr = e.getSelectBlock();
    // ...do something
    }
});

鼠标单击双击事件

单击事件是在鼠标单击某个单元格后发出。
双击事件是在鼠标双击某个单元格后发出。
table.addKDTMouseListener(new KDTMouseListener()
{
    public void tableClicked(KDTMouseEvent e)
{
    // 单击
        if (e.getClickCount() == 1)
{
            // ...do something
        }
        // 双击
        else if (e.getClickCount() == 2)
        {
            // ...do something
}
    }
});

激活单元即指当前处于准备进入编辑状态的单元。
激活单元变化事件是在激活单元发生变化后发出。
添加激活单元变化事件侦听者
table.addKDTActiveCellListener(new KDTActiveCellListener()
{
    public void activeCellChanged(KDTActiveCellEvent e)
{
    // 获取上一个激活单元的行列索引
        int prevRow = e.getPrevRowIndex();
        int prevCol = e.getPrevColumnIndex();
        // 获取当前激活单元的行列索引
        int currRow = e.getRowIndex();
        int currCol = e.getColumnIndex();
        // ...do something
    }
});

编辑事件

编辑事件KDTEditListener包括以下几个方法:
editStarting 编辑器启动中,在编辑器启动之前发出,通过设置返回值可以取消启动编辑器。
editStarted 编辑启动后,在编辑启动之后发出。
editValueChanged 编辑器值变化,在编辑器的值发生变化后发出。
editStopping 编辑器结束中,在编辑器结束之前发出,通过设置返回值可以取消结束编辑器。
editStopped 编辑器结束后,在编辑器结束之后发出。
KDTEditListener提供了适配器KDTEditAdapter
// 示例
table.addKDTEditListener(new KDTEditAdapter()
{
    // 编辑器启动前
    public void editStarting(KDTEditEvent e)
  {
        System.out.println("editStarting");
        // 如果当前行是第三行,将取消编辑
        if (e.getRowIndex() == 3)
            e.setCancel(true);
    }
    
    // 编辑启动后
    public void editStarted(KDTEditEvent e)
  {
        System.out.println("editStarted");
    // 如果当前单元处于第4行第0列,并且单元值为字符串,则在字符串前加上$符
    if ((e.getRowIndex() == 4) && (e.getColIndex() == 0))
    {
            KDTable tbl = (KDTable)e.getSource();
            Object value =tbl.getEditManager().getEditor().getValue();
            if (value instanceof String)
tbl.getEditManager().getEditor().setValue("$" + value.toString());
        }
    }
    
    // 编辑器值变化(注意:此时编辑器还未结束,KDTable实际上是转发编辑器的
   // change事件)
    public void editValueChanged(KDTEditEvent e){
        System.out.println("editValueChanged");
    }
    
    // 编辑器结束前
    public void editStopping(KDTEditEvent e)
{
        System.out.println("editStopping");
        //如果当前单元处于第4行第0列,则在退出前将$符去掉
        if ((e.getRowIndex() == 4) && (e.getColIndex() == 0))
{
            KDTable tbl = (KDTable)e.getSource();
            String value = (String)tbl.getEditManager().getEditor().getValue();
            // 如果单元格的值长度小于5,则不允许退出编辑状态
            if (value.length() < 5)
                e.setCancel(true);
            // 否则,取得$符并退出编辑
else
    tbl.getEditManager().getEditor().setValue(value.substring(1, value.length()));
        }
    }
    
    // 编辑结束后
    public void editStopped(KDTEditEvent e) {
        System.out.println("editStopped");
    }
});

BeforeActionListener事件

这个事件在table增删行列以及copy、paste、cut时触发,通过设置事件参数的返回值可以取消相应的动作。
// 给table设置action
table.setBeforeAction(new TableBeforeAction());
// action的实现
    class TableBeforeAction implements BeforeActionListener
    {       
        /**
         *@see com.kingdee.bos.ctrl.kdf.table.event.BeforeActionListener#beforeAction(com.kingdee.bos.ctrl.kdf.table.event.BeforeActionEvent)
         */
        public void beforeAction(BeforeActionEvent e)
        {
            // 添加行
            if (e.getType() == BeforeActionEvent.ACTION_ADD_ROW)
            {
                // 获取插入行的位置
                int rowIndex = ((Integer)e.getParameter()).intValue();
                
                if (rowIndex > 5)
                {
                    WindowUtil.msgboxInfo("不能添加行", "title", table);
                    
                    // 取消动作
                    e.setCancel(true);
                }
            }
            // 添加列
            else if (e.getType() == BeforeActionEvent.ACTION_ADD_COLUMN)
            {
                int colIndex = ((Integer)e.getParameter()).intValue();
                
                if (colIndex > 3)
                {
                    WindowUtil.msgboxInfo("不能添加列", "title", table);
                    
                    // 取消动作
                    e.setCancel(true);
                }
            }
            // paste
            else if (e.getType() == BeforeActionEvent.ACTION_PASTE)
            {
                // 获取paste的项
                int mark = ((Integer)e.getParameter()).intValue();
                
                // 如果paste项中包含userObject,则
                if (KDTEditHelper.isUserObject(mark))
                {
                    WindowUtil.msgboxInfo("paste", "title", table);
                    
                    // paste除userObject外的内容
                    table.getEditHelper().paste(KDTEditHelper.STYLE | KDTEditHelper.VALUE | KDTEditHelper.FORMULA);
                    // 取消动作
                    e.setCancel(true);
                }
            }
            // cut
            else if (e.getType() == BeforeActionEvent.ACTION_CUT)
            {
                // 获取cut的项
                int mark = ((Integer)e.getParameter()).intValue();
                
                // 如果cut项中包含userObject,则
                if (KDTEditHelper.isUserObject(mark))
                {
                    WindowUtil.msgboxInfo("cut", "title", table);
                    
                    // cut除userObject外的内容
                    table.getEditHelper().paste(KDTEditHelper.STYLE | KDTEditHelper.VALUE | KDTEditHelper.FORMULA);
                    
                    // 取消动作
                    e.setCancel(true);
                }
            }
        }
       }

eas之事件的更多相关文章

  1. JNI详解---从不懂到理解

    转载:https://blog.csdn.net/hui12581/article/details/44832651 Chap1:JNI完全手册... 3 Chap2:JNI-百度百科... 11 C ...

  2. eas中删除原来的监听事件添加新的监听事件

    kdtEntrys.removeKDTEditListener(kdtEntrys.getListeners(KDTEditListener.class)[0]);  kdtEntrys.addKDT ...

  3. JQuery事件机制

    1 事件操作 1.1 页面载入事件 $(document).ready(function(){ // 在这里写你的代码... }); 或者 $(function($) { // 你可以在这里继续使用$ ...

  4. Jquery的点击事件,三句代码完成全选事件

    先来看一下Js和Jquery的点击事件 举两个简单的例子 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&q ...

  5. 关于 Chrome 浏览器中 onresize 事件的 Bug

    我在写插件时用到了 onresize 事件,在反复地测试后发现该事件在 Chrome 及 Opera(内核基本与 Chrome 相同,以下统称 Chrome)浏览器打开时就会执行,这种情况也许不能算作 ...

  6. MVVM设计模式和WPF中的实现(四)事件绑定

    MVVM设计模式和在WPF中的实现(四) 事件绑定 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在WPF中 ...

  7. C++中的事件分发

    本文意在展现一个C++实现的通用事件分发系统,能够灵活的处理各种事件.对于事件处理函数的注册,希望既能注册到普通函数,注册到事件处理类,也能注册到任意类的成员函数.这样在游戏客户端的逻辑处理中,可以非 ...

  8. 移动端IOS点击事件失效解决方案

    解决方案 解决办法有 4 种可供选择: 1 将 click 事件直接绑定到目标元素(即 .target)上 2 将目标元素换成 <a> 或者 button 等可点击的元素 3 将 clic ...

  9. Android笔记——Button点击事件几种写法

    Button点击事件:大概可以分为以下几种: 匿名内部类 定义内部类,实现OnClickListener接口 定义的构造方法 用Activity实现OnClickListener接口 指定Button ...

随机推荐

  1. ZooKeeper教程资源收集(简介/原理/示例/解决方案)

    菩提树下的杨过: ZooKeeper 笔记(1) 安装部署及hello world ZooKeeper 笔记(2) 监听数据变化 ZooKeeper 笔记(3) 实战应用之[统一配置管理] ZooKe ...

  2. angular5 httpclient的示例实战

    摘要: 从angular 4.3.0 以后的版本开始使用httpclient,替换了之前的http,引用的包路径已经变为了angular/common/http了 一个基础的 httpclient 样 ...

  3. 一篇文章贯穿ACE各种发送接收组件 1.2版

    TCP通信过程介绍 首先介绍一下socket通信的基本过程:这里先如果有两个家伙在通信,一个是S.还有一个叫C (1)S打开port监听本地的port看看有没有人来连接: (2)与此同一时候C试图去连 ...

  4. Oracle学习(一):基本操作和基本查询语句

    文中以"--"开头的语句为凝视,即为绿色部分 1.知识点:能够对比以下的录屏进行阅读 SQL> --录屏工具spool,開始录制,并指定保存路径为c:\基本查询.txt SQ ...

  5. C++源码实现:21种常用设计模式

    C++源码实现:21种常用设计模式一直以来在设计模式的学习中,都是出现java的源码,这对学习C++的极度不友好.本工程是基于C++实现21种常用的设计模式,里面包含了实例代码和示例.编写的时候在学习 ...

  6. css中的绝对定位和相对定位(详解,总结)

    css中的绝对定位和相对定位(详解,总结) 总结: 设置绝对定位或者相对定位后都从文档中浮起来了,区别是相对定位还占着原来的位置,绝对定位不占着原来的位置,可以种z-index来改变元素的浮动的堆叠次 ...

  7. B4321 queue2 dp

    这个题的dp真的恶心.首先,一开始我以为是一道数论题,但是组合数和这个题没啥关系.dp方程巨麻烦,状态是dp[i][j][0/1],代表i位连了j个,上一位是否连着.然后开始转移,证明如下: 我们先来 ...

  8. 自顶向下(递归)的归并排序和自底向上(循环)的归并排序——java实现

    归并排序有两种实现方式,自顶向下和自底向上.前者的思想是分治法,现将数组逐级二分再二分,分到最小的两个元素后,逐级往上归并,故其核心在于归并.后者的思想相反,采用循环的方式将小问题不断的壮大,最后变成 ...

  9. Linux 安装配置JDK 、 MySQL 、nginx

    今天我来讲一下在Linux下各环境的搭建,主要就讲一下jdk.MySQL.和一个代理服务器nginx 1. jdk的安装配置 1)卸载自带openjdk 当我们拿到一个全新的ECS的时候上面有的会自带 ...

  10. cocos creator制作微信小游戏

    2019-05-30 22:11:47 基础: javaScript基础   https://www.bilibili.com/video/av34087791?from=search&sei ...