插件开发中常用的监听方式
来源:互联网 发布:网络不通怎么排查 编辑:程序博客网 时间:2024/05/24 03:32
监听器在插件开发过程上总是必要的,监听的方式有好几种,这里介绍两总常用的监听方式.
一种是在需要的时候直接使用,哪里需要就在哪里添加。这种方式的好处是写代码的时候可以很快的添加,不会打乱逻辑。另一种是创建一个内部类,对各种需要监听的事件进行分类处理。这种方式的好处是可以对监听进行很好的管理,代码显得很精简,模块化。对于事件响应不多的插件可以选择第一种,对于事件响应较多的可以选择第二种方式。
对于某一个TableView可以选择第一种方式来处理鼠标的响应。
listTableViewer.getTable().addMouseListener(new MouseListener() {@Overridepublic void mouseUp(MouseEvent e) {}@Overridepublic 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{@Overridepublic void widgetDefaultSelected(SelectionEvent event) {//默认的处理方式}@Overridepublic 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 0
- 插件开发中常用的监听方式
- Eclipse插件开发中常用的menubarPath
- notepad++开发中常用的插件
- java开发中常用的插件一
- iOS开发中常用的Xcode插件
- iOS开发中常用的几个插件
- ionic 开发中常用的一些插件
- Eclipse 插件开发中常用的 menubarPath 和 toolbarPath
- iOS 开发中你常用到的Xcode插件
- Android Studio中四个常用的开发插件
- 网页开发常用的插件
- 项目开发中常用的十六进制方式打印实现
- 两种开发中常用的布局方式
- 开发中常用的五种远程调用方式
- iOS开发中数组常用的五种遍历方式
- Android开发中更新UI的几种常用方式
- eclipse4插件开发中属性实现方式
- android实现事件监听的2种常用方式
- Jquery中$.ajax()详解
- Android Context 上下文 你必须知道的一切
- 闲聊CSS之关于clearfix--清除浮动
- OpenGL ES像素着色器教程
- Android源代码分析(三) MediaScanner源码分析(下)
- 插件开发中常用的监听方式
- dubbo学习过程、使用经验分享及实现原理简单介绍
- [leetcode] Two Sum
- jQuery UI dialog实现dialog弹框显示
- Android隐藏输入法自带的输入框,将输入框向上推
- LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- 在数据库服务端,添加一个表格,然后在MFC中对数据库表格的数据做插入、删除和修改
- Linux中虚拟内存和物理内存的关系
- 古藤堡带你体验别样的田园生活