这款IDEA插件刷爆了技术群,群友:这用起来真酸爽~

上一篇:字节跳动面试经验总结,已顺利拿到offer!

来源:juejin.cn/post/6914083794806898695

前言

当初年少懵懂,那年夏天填志愿选专业,父母听其他长辈说选择计算机专业好。从那以后,我的身上就有了计院深深的烙印。从寝室到机房,从机房到图书馆,C、C++、Java、只要是想写点自己感兴趣的东西,一坐就是几个小时,但那时年轻,起身,收拾,一路小跑会女神,轻轻松松。

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

试过用手机提醒自己,但是没用。小米手环的久坐提醒功能也开着,有时候写代码正入神的,时间到了也就点一下就关了,还是没什么作用。所以我想究竟是我太赖了,还是用Idea写代码容易沉迷,总之不可能是改需求有意思。

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

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

安装使用教程

安装

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

33f8cd84405e18bf73525d17fa5524fb.png

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

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

本地安装:

d8ecbd18a4096798b649c96a56d5cfca.png

使用

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

36c63b0687589dad25bc5d333dda8436.png

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

1c24c2fa708226ae6d183e9a586a2837.png

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

8a1a07bececff4d7aa0cfae710f5ea2c.png

开发教程

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

技术范围

插件工程结构

b16b7700aad45d6d35e29e186bfa598d.png

  • plugin.xml

这是插件工程的核心配置文件,里面每一项的解释,可以参考第一篇的介绍:

https://juejin.cn/post/6844904127990857742

  • data包

    • SettingData,配置信息对应model

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

  • service

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

  • task

    • RestTask 休息时的定时任务

    • WorkTask 工作时的定时任务

  • ui

    • SettingDialog 设置信息的对话框

    • TipsDialog 休息时提醒的对话框

  • StopCodingSettingAction 启动入口的action

Swing

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

创建对话框

  • Step1

246b3cfac8673d5b80914f7ee8e16331.png

  • Step2

250e481a2ad8aa1497be23681add544d.png

  • Step3

e61f598721dede434b27258a5bd6aa4f.png

注:这里并没有详细的展开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

49aed14160ad8c3d814b66fc71e5349e.png

  • step2

752ec1f0b939aeabe60945b799041567.png

Timer定时器

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

  • 构造方法

60485f3f208b045ffd5fa3e36e597c9c.png

  • 成员防范

1f0781998d88d991ca1ab9c4bcc28ad1.png

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

最后

相信有了这些基本介绍,感谢兴趣的小伙伴想去看看源码和尝试自己写一个小插件就没什么大问题了。希望这个插件能帮到作为程序员得你,和这篇文章对你有一点点启发。

感谢您的阅读,也欢迎您发表关于这篇文章的任何建议,关注我,技术不迷茫!小编到你上高速。 

    · END ·

最后,关注公众号互联网架构师,在后台回复:2T,可以获取我整理的 Java 系列面试题和答案,非常齐全。

正文结束

推荐阅读 ↓↓↓

1.救救大龄码农!45岁程序员在国务院网站求助总理!央媒网评来了...

2.如何才能成为优秀的架构师?

3.从零开始搭建创业公司后台技术栈

4.程序员一般可以从什么平台接私活?

5.37岁程序员被裁,120天没找到工作,无奈去小公司,结果懵了...

6.IntelliJ IDEA 2019.3 首个最新访问版本发布,新特性抢先看

7.这封“领导痛批95后下属”的邮件,句句扎心!

8.15张图看懂瞎忙和高效的区别!

2849f37a4a7183201c6ae31a92138f9f.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值