点击上方蓝色“方志朋”,选择“设为星标”

回复“666”获取独家整理的学习资料!

原文地址:juejin.cn/post/6914083794806898695

图片

前言

当初年少懵懂,那年夏天填志愿选专业,父母听其他长辈说选择计算机专业好。从那以后,我的身上就有了计院深深的烙印。从寝室到机房,从机房到图书馆,C、C++、Java、只要是想写点自己感兴趣的东西,一坐就是几个小时,但那时年轻,起身,收拾,一路小跑会女神,轻轻松松。现在工作了,毫无意外的做着开发的工作,长时间久坐。写代码一忙起来就忘了起来活动一下,也不怎么喝水。经常等到忙完了就感觉腰和腿不舒服。直到今年的体检报告一下来,才幡然醒悟:没有一个好身体,就不能好好打工,让老板过上他自己想要的生活了.

试过用手机提醒自己,但是没用。小米手环的久坐提醒功能也开着,有时候写代码正入神的,时间到了也就点一下就关了,还是没什么作用。所以我想究竟是我太赖了,还是用 IDEA 写代码容易沉迷,总之不可能是改需求有意思。所以元旦节打算为自己开发一款小小的 IDEA 防沉迷插件,我叫她【StopCoding】。她应该可以设置每隔多少分钟,就弹出一个提醒对话框,一旦对话框弹出来,IDEA 的代码编辑框就自动失去了焦点,什么都不能操作,到这还不算完,关键是这个对话框得关不了,并且还显示着休息倒计时,还有即使我修改了系统时间,这个倒计时也依然有效,除非我打开任务管理器,关闭 IDEA 的进程,然后再重新启动 IDEA。但是想一下想,IDEA 都都关了,还是休息一下吧。

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

安装使用教程

安装

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

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

  • 本地安装:

img

使用

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

img

  • 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 放在这里,就清楚它的使用了。

  • 构造方法

img

  • 成员防范

img

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

最后

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

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

热门内容:
  • 强大:MyBatis 流式查询

  • 微服务架构中配置中心的选择

  • 看看人家那后端API接口写得,那叫一个优雅!

最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

明天见(。・ω・。)ノ♡

骚操作 !IDEA 防止写代码沉迷插件 !相关推荐

  1. 骚操作,IDEA防止写代码沉迷插件 !

    当初年少懵懂,那年夏天填志愿选专业,父母听其他长辈说选择计算机专业好.从那以后,我的身上就有了计院深深的烙印.从寝室到机房,从机房到图书馆,C.C++.Java.只要是想写点自己感兴趣的东西,一坐就是 ...

  2. 【Python基础】pandas的骚操作:一行 pandas 代码搞定 Excel “条件格式”!

    来源:Python数据科学 作者:东哥起飞 本篇是pandas100个骚操作系列的第 7 篇:一行 pandas 代码搞定 Excel "条件格式"! 系列内容,请看????「pa ...

  3. IDEA、AndroidStudio写代码辅助插件

    在我们写代码的过程中总会有几句一连串的代码要写,写多了就会烦了,就会想着有没有更快的写代码方式,程序员生涯刚刚开始,会的也不多,不足之处还请各位指教一二. 目录 一.如何安装插件? 二.插件 (一)A ...

  4. 爱了爱了!骚红色机械键盘写代码真香,包邮送!

    有一阵子没有抽奖活动了,该自觉搞一波了.所以,今天乔戈里 联合9个公众号主给大家送一款全新 leoplod 利奥博德 FC980 NICE DAY OE版 机械键盘(价格1000多块). 写代码如果用 ...

  5. 骚操作:利用强弱符号制作插件库

    当有强符号和弱符号时,选择使用强符号 那么我们正可以利用这个原则做以下事情: 定义为弱符号,如果是弱符号,使用默认行为 如果链接了库,是强符号,则使用外部定义行为 以此来实现一个类似插件的功能.通俗一 ...

  6. 骚操作!一行Python代码能干嘛

    点击 机器学习算法与Python学习 ,选择加星标 精彩内容不迷路 下面给大家介绍50个有趣的Python一行代码,都很实用. 希望大家能从中找到对自己有帮助的技巧. ▍1.字母异位词 两个单词如果包 ...

  7. python多线程抢红包代码_Python有哪些神一般的骚操作? 远远不止抢车票、抢红包《附代码》...

    ​ 有人说,"Python除了不会生孩子,Python从撩妹到装x,无所不能!什么都会!" 下载视频?我用Python: 玩跳一跳?我用Python跳到4999分: 撩妹子?依然用 ...

  8. python有哪些码_Python有哪些神一般的蜜汁操作? 《附代码》

    有人说,"Python除了不会生孩子,Python从撩妹到装x,无所不能!什么都会!" 下载视频?我用Python: 玩跳一跳?我用Python跳到4999分: 撩妹子?依然用Py ...

  9. python有哪些代码_Python有哪些神一般的蜜汁操作?(附代码),

    Python有哪些神一般的蜜汁操作?(附代码), 有人说,"Python除了不会生孩子,Python从撩妹到装x,无所不能!什么都会!" 下载视频?我用Python; 玩跳一跳?我 ...

最新文章

  1. 亚马逊全面回应:涵盖人脸识别、假货等 10 个问题
  2. python使用手册-python 教程与手册(60IN1合集)
  3. Android 使用 ActivityResult 处理 Activity 之间的数据通信及调起拍照实例
  4. bzoj1833: [ZJOI2010]count 数字计数(数位DP+记忆化搜索)
  5. mysql 优化之 is null ,is not null 索引使用测试
  6. php document.getel,javascript 密码强弱度检测万能插件_javascript技巧
  7. 01 Spring学习之-事件驱动eventListener
  8. qtablewidget固定一列滚动_简单易懂,最全滚动轴承基本知识汇总
  9. 女人抛弃男人的唯一理由
  10. 游戏王计算机兽,游戏王星杯卡——迅猛龙,再生圣经,入侵蠕虫,鼹鼠,幽世之血樱...
  11. css方法div固定在网页底部
  12. 傅里叶变换和拉普拉斯变换
  13. java 处理txt_java 读写 txt 文件
  14. Windows环境下Redis安装与配置的两种方式
  15. 新北京交通限行时间、尾号查询
  16. jquery 的税收计算器(仅限参考)
  17. 佳能无线打印机服务器,佳能LBP6018W打印机WIFI无线打印心得分享
  18. wafw00f--一款基于python识别网站WAF的工具
  19. Unity3D Shader系列之描边
  20. 七种常见阈值分割代码(Otsu、最大熵、迭代法、自适应阀值、手动、迭代法、基本全局阈值法)...

热门文章

  1. Linux 工具进阶
  2. 【单调栈 前缀和 异或】7.21序列求和
  3. 使用datatables实现列宽设置、水平滚动条、显示某列部分内容
  4. Storm 0.9安装指南
  5. Flash/Flex学习笔记(4):如何打开网页及Get/Post数据
  6. 【组队学习】【33期】3. 李宏毅机器学习(含深度学习)
  7. 与14级团队同学的约定
  8. php字符串替换多余逗号_PHP字符过滤函数去除字符串最后一个逗号(rtrim)
  9. 2021 火爆技术人朋友圈的实时音视频 RTC 你 Pick 了嘛?
  10. “编程能力差的程序员,90%输在这事上!”谷歌AI专家:都是瞎努力!