# studyplugin
**Repository Path**: jyq_18792721831/studyplugin
## Basic Information
- **Project Name**: studyplugin
- **Description**: studyplugin
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 5
- **Forks**: 1
- **Created**: 2021-12-19
- **Last Updated**: 2024-01-28
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# studyplugin
学习idea插件开发
## [idea插件开发入门](https://jiayq.blog.csdn.net/article/details/122023848)
idea插件开发的helloword,开发一个插件,需要哪些步骤。
idea中右下角通知的实现。
## [idea插件开发--配置](https://jiayq.blog.csdn.net/article/details/122073258)
idea中插件的配置,如何持久化保存。
如何在idea的setting中增加自己的插件的配置界面。
增加的插件配置的获取与使用。
## [idea插件开发--服务-翻译插件](https://jiayq.blog.csdn.net/article/details/122292086)
idea中插件服务的定义,获取和使用。
如何在idea插件中请求网络资源。
如何将第三方依赖加入到idea插件项目中。
如何让插件操作编辑窗口的内容。
控制插件功能是否可用。
## [idea插件开发--组件--编程久坐提醒](https://jiayq.blog.csdn.net/article/details/122420624)
通过这个插件,首先是了解了idea插件的组件,包括组件的定义,使用以及idea自己对组件的演变。
接着了解了组件的替代者,有监听器,有工具类等,idea提供了多种方式实现原本组件的功能。
同时也是进一步体会到了技术的发展对开发工具的影响,比如随着微服务的兴起,项目内模块的数量迅速增加,此前提供的模块级别的组件,此时就不太适合了,那么idea就抛弃了组件这种功能,转为其他方式实现。
然后是了解了idea中的消息系统,以及idea是如何实现的消息系统,idea中各个控件如何相互配合,多个线程之间的状态如何进行数据的传递,以及Idea对消息系统中发布订阅模型的客户化修改。
当然,还有最重要的监听器,可以说,监听器可以关注订阅idea中任何状态,事件和操作,都允许插件开发者对这些信息做自己关注的处理。
除此之外,对jdk中提供的计时器有了一定的了解,计时器的使用,原理和计算方式。
接着是如何使用swing中的进度条的控件,包括进度条的创建,使用和更新,以及进度条值得监控。
swing对计时器的适配,使得使用计时器更新进度条更加简便。
在后则是idea中提供的对话框的封装,以及如何使用重写机制,来修改父类中对话框的绘制,以及如何创建对话框,展示对话框和关闭对话框。
在对话框中了解到了swing中对于多个线程对相同数据的竞争是如何解决的,以及EDT线程是什么,如何避免EDT线程检测,如何正确的在EDT线程之外操作swing的界面。
其实时间的存储中,开发的时候也遇到了一定的困难,比如时间和时间戳的相互转化,时区的获取。
也逐渐让我明白了,打印日志是多么的重要,特别是这种多线程的开发的时候,不打印日志,即使有断点调试,梳理多个线程之间的互相调用,也是比较难的。好的日志可以让问题一目了然。