这款IDEA插件刷爆了朋友圈,网友:这用起来有点酸爽~

共 8796字,需浏览 18分钟

 ·

2021-05-21 20:50


















关注我们,设为星标,每天7:30不见不散,架构路上与您共享 


回复"架构师"获取资源




当初年少懵懂,那年夏天填志愿选专业,父母听其他长辈说选择计算机专业好。从那以后,我的身上就有了计院深深的烙印。



















从寝室到机房,从机房到图书馆,C、C++、Java、只要是想写点自己感兴趣的东西,一坐就是几个小时,但那时年轻,起身,收拾,一路小跑会女神,轻轻松松。






现在工作了,毫无意外的做着开发的工作,长时间久坐。写代码一忙起来就忘了起来活动一下,也不怎么喝水。经常等到忙完了就感觉腰和腿不舒服。直到今年的体检报告一下来,才幡然醒悟:没有一个好身体,就不能好好打工,让老板过上他自己想要的生活了.






试过用手机提醒自己,但是没用。






小米手环的久坐提醒功能也开着,有时候写代码正入神的,时间到了也就点一下就关了,还是没什么作用。






所以我想究竟是我太赖了,还是用Idea写代码容易沉迷,总之不可能是改需求有意思。所以元旦节打算为自己开发一款小小的Idea防沉迷插件,我叫她【StopCoding】。






她应该可以设置每隔多少分钟,就弹出一个提醒对话框,一旦对话框弹出来,idea的代码编辑框就自动失去了焦点,什么都不能操作,到这还不算完,关键是这个对话框得关不了,并且还显示着休息倒计时,还有即使我修改了系统时间,这个倒计时也依然有效,除非我打开任务管理器,关闭Idea的进程,然后再重新启动Idea。






但是想一下想,idea都都关了,还是休息一下吧。






下面就介绍一下她简单的使用教程和开发教程





# 安装使用教程






安装







1.在idea中直接搜索安装StopCoding插件(官方已经审核通过)













2. 内网开发的小伙伴 可以下载之后进行本地安装:






https://github.com/jogeen/StopCoding/releases/tag/20210104-V1.0








  • 本地安装:







使用







Step1. 然后在菜单栏中tools->StopCoding













Step2. 设置适合你的参数然后保存。









Step3. 然后快乐的Coding吧,再不用担心自己会沉迷了。工作时间结束,她会弹出下框进行提醒,当然,这个框是关不掉的.只有你休息了足够的时间它才会自动关闭.










# 开发教程







这个插件非常的简约,界面操作也很简单。所使用的技术基本上都是java的基础编程知识。所以小伙伴感兴趣的话,一起看看吧。





技术范围









  • 插件工程的基本结构



  • Swing 主要负责两个对话框的交互



  • Timer 作为最基本的定时器选择




插件工程结构
















  • plugin.xml



这是插件工程的核心配置文件。








  • data包




    • SettingData,配置信息对应model



    • DataCenter,作为运行时的数据中心,都是些静态的全局变量










  • service




    • TimerService 这个定时计算的核心代码










  • task




    • RestTask 休息时的定时任务



    • WorkTask 工作时的定时任务










  • ui




    • SettingDialog 设置信息的对话框



    • TipsDialog 休息时提醒的对话框










  • StopCodingSettingAction 启动入口的action






Swing







其实在idea中开发Swing项目的界面非常简单。因为idea提供了一系列可视化的操作,以及控件布局的拖拽。接下来就简单的介绍一下对话框的创建过程和添加事件。





创建对话框







Step1









Step2









Step3









注:这里并没有详细的展开Swing的讲解,因为界面的这个东西,需要大家多去自己实践。这里就不做手册式的赘述了。





添加事件







其实,刚才创建的这个对话框里的两个按钮都是默认已经创建好了点击事件的。






























public class TestDialog extends JDialog { private JPanel contentPane; private JButton buttonOK; private JButton buttonCancel;
public TestDialog() { setContentPane(contentPane); setModal(true); getRootPane().setDefaultButton(buttonOK);
buttonOK.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { onOK(); } }); //这是给OK按钮绑定点击事件的监听器
buttonCancel.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { onCancel(); } });//这是给取消按钮绑定点击事件的监听器 //其他代码 }







当然我们也可以其它任何控件去创建不同的事件监听器。这里可以通过界面操作创建很多种监听器,只要你需要,就可以使用。






step1













step2






Timer定时器







在这个插件里面,需要用到定时的功能,同时去计算公国和休息的时间。所以使用JDK自带的Timer,非常的方便。下面我Timer的常用的api放在这里,就清楚它的使用了。








  • 构造方法












  • 成员防范






主要是schedule去添加一个定时任务,和使用cancel去取消任务停止定时器。






idea过期的小伙伴可以关注公众号回复“idea”获取激活码,试一下吧。


































































































































到此文章就结束了。如果今天的文章对你在进阶架构师的路上有新的启发和进步,欢迎转发给更多人。欢迎加入架构师社区技术交流群,众多大咖带你进阶架构师,在后台回复“加群”即可入群。









































































这些年小编给你分享过的干货




Kubernetes的前世今生


你们公司的架构师是什么样的?


《Docker与CI持续集成/CD持续部署》


《还有40天,Java 11就要横空出世了》


《JDK 10 的 109 项新特性》


《学习微服务的十大理由》









转发在看就是最大的支持❤️



浏览 64
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报