一、创建插件工程

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

idea java 可视化控件编程 idea开发可视化编辑插件_java

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

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

idea java 可视化控件编程 idea开发可视化编辑插件_收藏夹_02

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

idea java 可视化控件编程 idea开发可视化编辑插件_intellij idea_03

三、开发功能

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

idea java 可视化控件编程 idea开发可视化编辑插件_intellij idea_04

idea java 可视化控件编程 idea开发可视化编辑插件_intellij-idea_05

然后逐个实现相应的功能

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

在项目的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 {
    @Override
    public 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页面,在底部的工具栏打开就能看到插件相关的页面

idea java 可视化控件编程 idea开发可视化编辑插件_intellij-idea_06

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

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

idea java 可视化控件编程 idea开发可视化编辑插件_intellij idea_07

发布idea应用市场

六、版本迭代

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

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

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

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

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

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

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

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