上一篇我们说了DesignerStartup的启动过程中有一个GlobalListenerProvider扩展,这个扩展是一个监听键盘事件的监听扩展。先看效果:
![](https://img-blog.csdnimg.cn/20210906105007447.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5biG6L2v54ix5aW96ICF,size_20,color_FFFFFF,t_70,g_se,x_16)
当监听到键盘事件时,弹出提示。
1 先看插件项目结构:
![](https://img-blog.csdnimg.cn/20210906105220270.png)
需要实现两个类,一个是provider,一个是listener
2 plugin.xml中的配置:
![](https://img-blog.csdnimg.cn/20210906105418104.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5biG6L2v54ix5aW96ICF,size_20,color_FFFFFF,t_70,g_se,x_16)
这个扩展是配置到extra-designer节点下,扩展xml标签名字为:GlobalListenerProvider
3 查看源码
3.1 MyGlobalListenerProvider1源码
这个类继承了抽象类AbstractGlobalListenerProvider,AbstractGlobalListenerProvider类实现了接口GlobalListenerProvider接口,帆软报表中对于扩展插件的开发,一般内部都会实现一个抽象类,我们只需要继承这个抽象类即可,而不必去实现扩展接口。
这个类要求我们返回一个AWTEventListener类型的实例对象。这里返回我们自己实现的MyAWTEventListener1实例。
3.2 MyAWTEventListener1源码
MyAWTEventListener1类我们实现了AWTEventListener接口,并且判断event是否是KeyEvent的实例,并且弹出一个提示框。
更多内容:https://blog.csdn.net/sixingbugai?spm=1000.2115.3001.5343 |