插件开发中常用的监听方式

      监听器在插件开发过程上总是必要的,监听的方式有好几种,这里介绍两总常用的监听方式.

一种是在需要的时候直接使用,哪里需要就在哪里添加。这种方式的好处是写代码的时候可以很快的添加,不会打乱逻辑。另一种是创建一个内部类,对各种需要监听的事件进行分类处理。这种方式的好处是可以对监听进行很好的管理,代码显得很精简,模块化。对于事件响应不多的插件可以选择第一种,对于事件响应较多的可以选择第二种方式。

    对于某一个TableView可以选择第一种方式来处理鼠标的响应。

listTableViewer.getTable().addMouseListener(new MouseListener() {			
		@Override
		public void mouseUp(MouseEvent e) {}
		@Override
		public void mouseDown(MouseEvent e) {
                 int index=listTableViewer.getTable().getSelectionIndex();
                      //监听单击,鼠标单击时,获得鼠标选中的那一个表项的索引,并存入index;
                 }
              @Overridepublic void mouseDoubleClick(MouseEvent e) {
                  listTableViewer.refresh();//鼠标双击时,刷新该表单
                }
             });

 

    对于多按钮则需要创建一个类来匹配这样响应,有利于模块化自己的代码。

 public void initButtonListener{
                InnerSelectListener selectListener=new InnerSelectListener();
	        selectCombo.addSelectionListener(selectListener);
                button1.addSelectionListener(selectListener);
                button2.addSelectionListener(selectListener);
                button3.addSelectionListener(selectListener);
                button4.addSelectionListener(selectListener);
             }

 
 

    上面初始化一系列的按钮监听器。对于每一个按钮都为他们添加了一个监听器,所以当我们单击这些按钮的时候,系统会获得这些按钮触发的事件源。那在哪里处理的这些事件源呢?我们创建了一个InnerSelectListener();这就是我们处理事件的地方。我们创建一个类,注意这个类必须要继承SelectionListener这个类。

 private class InnerSelecitionListener implements SelectionListener{
		@Override
		public void widgetDefaultSelected(SelectionEvent event) {//默认的处理方式
		}
		@Override
		public void widgetSelected(SelectionEvent event) {
			Object source = event.getSource();//获得事件源
			if(source.equals(selectCombo)){	
		            //处理下拉框的点击事件,比如获得选中的索引
                            int index=selectCombo.getSelectionIndex();
                        }else if(source.equals(button1)){ 
                            listTableViewer.refresh();//刷新列表
                        }else if(source.equals(button2)){ 
                            listTableViewer.refresh();
                        }else if(source.equals(button3)){ 
                            listTableViewer.refresh();
                        }//对于已经添加了监听器的按钮,可以不实现,点击的时候不处理
                 }
             }

   
 对于每一个按钮可能有实际的功能,这里使用刷新列表代替的。比如,可改变button上的小提示等等。 


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java开发技术大全 电子版 第1篇Java基础知识入门. 第1章Java的开发运行环境2 1.1Java的运行环境与虚拟机2 1.2Java的开发环境4 1.2.1JDK的安装4 1.2.2如何设置系统环境变量6 1.2.3编译命令的使用8 1.2.4解释执行命令的使用10 1.2.5UltraEdit的使用11 1.3一个简单的Java应用程序14 1.4一个简单的Java小程序16 1.5本章小结18 第2章Java语言基础19 2.1Java语言的特点19 2.2Java程序的构成21 2.3数据类 型23 2.3.1基本数据类型23 2.3.2常量25 2.3.3变量26 2.3.4整型数据27 .2.3.5浮点型数据29 2.3.6字符型数据30 2.3.7布尔型数据32 2.3.8变量赋初值33 2.3.9变量的作用域34 2.3.10数据类型转换34 2.4运算符与表达式37 2.4.1算术运算符和算术表达式38 2.4.2关系运算符和关系表达式43 2.4.3逻辑运算符和逻辑表达式44 2.4.4条件运算符和条件表达式48 2.4.5位运算符和位运算表达式50 2.4.6赋值运算符和赋值表达式53 2.4.7表达式的求值顺序55 2.5流程控制语句58 2.5.1三种基本控制结构58 2.5.2表达式语句和空语句59 2.5.3块语句60 2.5.4if~else分支语句61 2.5.5多路分支switch~case语句69 2.5.6当型循环while语句71 2.5.7直到型循环do~while语句72 2.5.8当型循环for语句74 2.5.9循环的嵌套78 2.5.10跳转语句break80 2.5.11跳转语句continue82 2.6程序文本的风格84 2.6.1注释84 2.6.2程序的格式编排87 2.7基础语法实战演习88 2.7.1判断闰年88 2.7.2求最大公约数和最小公倍数89 2.7.3Fibonacci数列90 2.7.4逆向输出数字91 2.7.5求水仙花数92 2.7.6输出图形93 2.7.7输出九九口诀表94 2.8本章小结95 第2篇Java面向对象编程 第3章对象和类98 3.1面向对象的基本概念98 3.1.1对象98 3.1.2类99 3.1.3消息101 3.1.4面向对象的4个基本特征101 3.2类与对象104 3.2.1类的基本结构104 3.2.2类的声明104 3.2.3创建类体105 3.2.4对象的生命周期106 3.2.5对象的创建106 3.2.6对象的使用108 3.2.7对象的释放和垃圾收集机制108 3.3成员变量的定义与使用109 3.3.1成员变量的定义109 3.3.2成员变量的访问权限110 3.3.3实例成员变量和静态成员变量114 3.4方法的定义和实现116 3.4.1方法的声明117 3.4.2创建方法体与return语句117 3.4.3局部变量和成员变量的区别119 3.4.4方法的访问权限121 3.5方法的调用121 3.5.1方法调用的形式121 3.5.2方法调用的参数123 3.5.3隐含参数this127 3.6构造方法128 3.6.1无参数构造方法的定义和使用129 3.6.2带参数构造方法的定义和使用131 3.6.3this关键字和构造方法的调用132 3.7静态方法133 3.7.1静态方法的声明和定义134 3.7.2静态方法和实例方法的区别134 3.7.3静态代码块136 3.7.4再论静态成员变量137 3.8main()方法和命令行参数139 3.9结束方法141 3.10本地方法141 3.11本章小结144 第4章继承与多态145 4.1继承的基本原理145 4.2子类对父类的继承146 4.3属性隐藏和方法的覆盖148 4.3.1属性的隐藏148 4.3.2方法的覆盖151 4.4构造方法的继承154 4.5super的使用156 4.5.1用super引用父类的成员156 4.5.2使用super调用父类的构造方法157 4.6继承的内部处理158 4.7多态的基本概念159 4.8重载159 4.8.1普通方法的重载160 4.8.2构造方法的重载161 4.8.3重载的解析163 4.8.4重载与覆盖的区别165 4.9运行时多态165 4.9.1实例方法的运行时多态165 4.9.2成员变量运行时的表现167 4.9.3静态方法运行时

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值