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

从寝室到机房,从机房到图书馆,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去取消任务停止定时器。

# 最后

相信有了这些基本介绍,感谢兴趣的小伙伴想去看看源码和尝试自己写一个小插件就没什么大问题了。不说了,我得休息了。希望这个插件能帮到作为程序员得你,和这篇文章对你有一点点启发。当然麻烦小伙伴点个赞,鼓励一下打工人。

源码地址:https://github.com/jogeen/StopCoding

这款IDEA插件刷爆了朋友圈,网友:一定是女朋友送的~相关推荐

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

    欢迎关注方志朋的博客,回复"666"获面试宝典 来源:juejin.cn/post/6914083794806898695 前言 当初年少懵懂,那年夏天填志愿选专业,父母听其他长辈 ...

  2. 中大南方学院计算机温澍潜,中大南方学院“男神”老师刷爆学生朋友圈

    中大南方学院"男神"老师刷爆学生朋友圈 上课学生出勤率总是濒临"爆表" 近日,中山大学南方学院很多学生们的朋友圈都被一条"朋友圈炸了,我的台湾老师是男 ...

  3. 仿佛一夜之间,微信的这几个“新功能”刷爆了 朋友圈 和 各大群!

    前言 就在前年,微信正式宣布用户突破10.8个亿,基本成了每个国人手中--人手必备的工具之一了.先不说别人,就从自己的爸爸妈妈开始说起,他们很少不涉猎电子产品类,自从微信问世后,他们也学起来使用微信: ...

  4. 这份2021Java程序员常用技术栈和工具清单,刷爆了朋友圈...

    点击上方蓝色字体,选择"标星公众号" 优质文章,第一时间送达 关注公众号后台回复pay或mall获取实战项目资料+视频 作为一枚Java程序员,需要掌握哪些技术和工具才能完成一个J ...

  5. cfa三级真题和mock_两年高分过CFA三级的女学霸:复习秘诀刷爆了朋友圈!

    你找到适合自己的复习方式了吗? 大千世界中,学习的方法有千千种.同样备考CFA,也有着众多不同的复习方式,而殊途同归. 关键是,适合自己的,才是最好的.对于迷茫的人来说,或许可以从别人的思路中,找到些 ...

  6. 超值爆赞丨Java 程序员推荐的学习教程,刷爆了朋友圈...

    文内福利,扫码免费领取 Hello,各位锋迷们,我是小千.很多学习Java的小伙伴都在找的全套免费java视频教程,这里全都有,资料齐全,拿来吧你! 零基础学Java的学习路线图是怎样的?! 曾经写过 ...

  7. 【新能源】这家新能源汽车动力电池工厂车间视频,最近刷爆了朋友圈!!

    很多人都知道,前段时间,欧洲一些国家,相继发布了禁售燃油车的时间和计划,全世界似乎都要跨入新能源汽车的时代,发动机是燃油车的心脏,而新能源汽车的心脏,则是动力电池:新能源汽车的发展正在将中国汽车产业带 ...

  8. 【Python小游戏】一只大猩猩“刷”爆了朋友圈?敢玩这个游戏不?(附源码)

    前言 如果让你模仿大猩猩,你会怎么做?一个典型的动作就是用两只手轮流快速拍打胸口,敲出嘭 嘭嘭打鼓一般的声音.对就是这样

  9. python广告搞笑_技术入门 | 听说Python的广告刷爆了你的朋友圈?

    前几天,一条 Python 广告刷爆了小编的朋友圈.网友纷纷惊呼,"什么鬼?居然这么多人在学 Python?"而在日前 IEEE Spectrum 发布的第五届年度编程语言交互排行 ...

最新文章

  1. linux内核写文件flush,innodb_flush_method 与linux File I/O
  2. eigen跟踪MILTracker代码分析
  3. “网站漏洞”成电信诈骗帮凶 专家呼吁进行“立体防护”
  4. 80x86 CPU 的工作模式
  5. display详细说明
  6. 在诺基亚S60v3上运行.NET程序
  7. c语言中二维数组中产生随机数,C语言中是如何进行随机数生成的[多图]
  8. 2017.4.20 hanoi双塔问题 思考记录
  9. iphone iPhone开发中为UINavigationBar设置背景图片方法
  10. 创建线程有几种不同的方式
  11. java圆角矩形_[转]c# 画圆角矩形
  12. POS-商户手续费-从生活剖析,通俗易懂
  13. 代码片段---重定向
  14. sphinx的使用1-创建索引
  15. 跳一跳python源码下载_微信跳一跳辅助_微信跳一跳作弊外挂下载【脚本】-华军软件园...
  16. 【电商运营】京东数字化运营【客单价篇】
  17. C++中的各种进制转换函数汇总
  18. linux spec cpu,SPEC CPU2006的安装和使用
  19. 3D角色模型的雕刻技巧:电影般的艺术工作流程,靠的是时间的叠加
  20. 和平精英电脑版服务器未响应,和平精英电脑版为什么卡顿 电脑版卡顿解决方法...

热门文章

  1. vs2017 开始自己的第一个C++程序
  2. java ee 主要学什么_java ee都要学什么
  3. 南京航空航天大学计算机学硕真题,2021南京航空航天大学考研历年真题
  4. FFmpeg开发(六)——Qt视频播放器之封装音频类(参考了暴风影音、迅雷影音)
  5. Windows10 桌面图标显示异常
  6. 福昕(Foxit)高级PDF编辑器_10.1.1.37576企业欢快版
  7. Mac | MacBook Pro M1 效率软件篇
  8. 2019电大计算机专业英语1答案,2019年秋电大开放英语1形成性考核册答案,最..._公共英语考试_帮考网...
  9. 请问怎样在亚马逊美国站卖东西?怎样收款?接到单打什么快递?请问亚马逊卖家开店具体怎样操作?
  10. 京东联合多家企业打造“阳光诚信联盟”,要将失信行为一锅端