一、创建插件工程

可以通过gradle创建,也可以直接创建,本文展示直接创建的方式

二、设计插件的功能和页面

通过GUI创建一个一个JForm来构型

一开始是做简单功能设计,支持打开文本文件,在文本文件中搜索,之所以设计了翻页的功能是因为当文本很大时,textPane渲染很慢

三、开发功能

给按钮添加点击事件监听,实现功能;按钮右键选择create listner – > 选择 mouse listner --> 选择对应的鼠标事件

然后逐个实现相应的功能

四、编写插件的扩展点并测试运行

在项目的plugin.xml中编写插件的扩展点

<extensions defaultExtensionNs="com.intellij"><!-- Add your extensions here --><toolWindow id="test" secondary="false" anchor="bottom"factoryClass="test.TestWindowFactory"></toolWindow></extensions>

并编写工厂类

public class TestWindowFactory implements ToolWindowFactory {@Overridepublic void createToolWindowContent(@NotNull Project project, @NotNull ToolWindow toolWindow) {Test test = new Test();ContentFactory contentFactory = ContentFactory.SERVICE.getInstance();Content content = contentFactory.createContent(test.getJpanel(), "", false);toolWindow.getContentManager().addContent(content);}
}

运行插件会打开一个新的idea页面,在底部的工具栏打开就能看到插件相关的页面

五、打包插件并发布应用市场

打包插件build 菜单下点击prepare plugin module for xxx deployment; 然后就会打成一个插件的jar包

发布idea应用市场

六、版本迭代

上面介绍了开发的大体流程,然后后面就是细节的优化了

包括用增加工具条:JToolBar,然后将各种按钮图标放到工具条上

用图标代替文字按钮:给icon属性增加图标图片

增加收藏:需要保存当前文件名称,路径,当前阅读的页码,读到什么位置了(通过滚动条位置大致计算),然后将其保存到本地文件中用于后续从收藏夹中打开和快速跳转。

收藏夹功能:收藏夹的树形结构展示通过JTree实现,跳转的时候还需要实现如果当前未打开文件需要打开对应的文件并跳转到对应位置

收藏夹中打开和快速跳转。

收藏夹功能:收藏夹的树形结构展示通过JTree实现,跳转的时候还需要实现如果当前未打开文件需要打开对应的文件并跳转到对应位置

增加目录功能:实现原理跟收藏夹类似

七、插件地址

https://download.csdn.net/download/khuangliang/34908759

八、源码下载地址

https://download.csdn.net/download/khuangliang/35168477

九、功能展示页面

https://blog.csdn.net/khuangliang/article/details/121000833?spm=1001.2014.3001.5501

idea阅读器插件开发实现相关推荐

  1. centos下将vim配置为强大的源码阅读器

    每日杂事缠身,让自己在不断得烦扰之后终于有了自己的清静时光来熟悉一下我的工具,每次熟悉源码都需要先在windows端改好,拖到linux端,再编译.出现问题,还得重新回到windows端,这个过程太耗 ...

  2. ubuntu chm文档阅读器

    一,chm阅读器名称 KchmViewer 安装方法 sudo apt-get install kchmviewer 使用 kchmviewer #非root用户可以直接使用 转载于:https:// ...

  3. 让Chrome成为你的pdf阅读器

    我在Mac OS上使用过的浏览器有Chrome.Safari和Firefox,由于做的产品要支持多浏览器,所以这几种浏览器都会用到,Chrome的使用频率更高一些. 之前想通过浏览器在线阅读PDF时, ...

  4. 读科研文献也能泄露隐私,用户发现爱思唯尔PDF阅读器收集用户信息

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI 阅读科学 ...

  5. (二)阅读器客户端开发实战_需求阐述

    2019独角兽企业重金招聘Python工程师标准>>> 最近手上并行的跑了好几个项目,弄得自己都抽不出时间来更新博客啦,前面说的好好的要坚持的,没想到才几天,就停止啦,看来是计划赶不 ...

  6. jQuery Mobile发展新闻阅读器,适应iphone和android打电话

    程序猿是很不赖,你知道. 我们经常新浪,腾讯.雅虎等各大网站看到上述新闻.他们还推出了自己的移动新闻阅读器.今天,我自己用的jQuery Mobile 为了实现这一功能,.图像大小上传限制的大小250 ...

  7. rss阅读器保存html文件,轻量级RSS阅读器网页版:selfoss安装教程

    说明:关于RSS阅读器,我们知道的有Feedbin.FreshRSS等,功能都挺强大的,这里就再介绍个轻量级的RSS阅读器selfoss,使用起来是非常简单的,界面颜值也还不错,支持很多种订阅和网站, ...

  8. 用C#制作新闻阅读器(电脑报2005年3月14日 第10期)

    一.弄清结构再动手    要想轻松的抽取RSS信息,自然先要了解它的结构,所谓"知己知彼,百战不殆"嘛. 1.RSS的结构    我们先打开百度新闻一个RSS链接,如果你再多打开几 ...

  9. Emacs中的RSS阅读器--newsticker

    1 简介 ------- newsticker是一个RSS阅读器,它支持以下几种格式 * RSS 0.91 * RSS 0.92 * RSS 1.0 * RSS 2.0 * Atom 0.3 * At ...

最新文章

  1. Python的输出:Python2.7和Python3.7的区别
  2. app.vue 跳转页面_独立站如何提高产品页面转化呢?
  3. BRCM5.02编译四: ERROR: lzo/lzo1x.h development library is required for build
  4. Spring容器初始化和bean创建过程
  5. C++中的数组array和vector,lambda表达式,C字符串加操作,C++中新类型数组(数组缓存),多元数组,new缓冲
  6. (一)梳理前端知识体系,搞定大厂必考面试题
  7. python数据分析基础教程考试试卷_Python数据分析-自测试卷5
  8. 字典的增删改查/元组的创建
  9. 如何多人共同编辑_如何实现可多人协作的“在线excel”系统?
  10. 推荐周立功先生的一本书
  11. git版本控制(精)
  12. P4838 P哥破解密码
  13. Android java传递int类型数组给C
  14. 股债轮动策略之行业版
  15. [论文阅读] Adaptive Context Selection for Polyp Segmentation
  16. DEEPNOVA 技术荟系列公开课回顾:释放海量数据价值,尽显数据智能之美
  17. 如何在 Mac App Store 中查看和阅读隐私标签?
  18. 修改后的LOGO发布(确定稿)
  19. 为Navicat ER图增添字段备注
  20. C#上位机系列(4)—示波器一新窗口的建立

热门文章

  1. Debian,从安装到喜欢
  2. 调用函数的ALV、面向对象的ALV设置带选择列
  3. MySQL 数据库事物隔离级别的设置
  4. 创建私有CA及其签署和吊销证书
  5. jquery库实现iframe自适应内容高度和宽度
  6. C#设计模式系列:装饰模式(Decorator)
  7. Winfrom打印表单
  8. 百年不遇的,我遇到了两次
  9. 《An Introduction to Ray Tracing》—— 3.3 Ray-Surface Intersections
  10. 问题四十一:怎么用ray tracing画任意圆柱面(generalized cylinder)