欢迎关注方志朋的博客,回复”666“获面试宝典

来源:juejin.cn/post/6914083794806898695

前言

当初年少懵懂,那年夏天填志愿选专业,父母听其他长辈说选择计算机专业好。从那以后,我的身上就有了计院深深的烙印。从寝室到机房,从机房到图书馆,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

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

https://juejin.cn/post/6844904127990857742

  • 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去取消任务停止定时器。

最后

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

热门内容:
  • 推荐一个 Java 接口快速开发框架

  • 面试官:有了 for 循环 为什么还要 forEach ?

  • 网传铁饭碗职业排名,公务员仅排第八!

  • 为什么 Java 中“1000==1000”为false,而”100==100“为true?

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

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

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

  1. 这款IDEA插件刷爆了朋友圈,网友:一定是女朋友送的~

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

  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. 进程间通信--命名管道
  2. tensorflow sobel算子实现
  3. 云炬VB开发笔记 3VB语言基础和顺序结构
  4. c++中实现delphi的按类名生成类对象
  5. 中文论文万能句型_收藏 | SCI 论文写作的万能句型(二)
  6. MogDB/openGauss 手动部署(非OM工具)单机、主备、主备级联架构
  7. mysql读会产生事务吗_来谈谈MySQL事务及事务引发的问题
  8. 01.springboot入门和微服务简介
  9. PHP教程一环境搭建 Wampserve 下载和安装
  10. 程序带来这些新的机会,创业新浪潮才刚开始!
  11. 等比数列求和公式、性质
  12. 页面添加蒙版,但是不影响页面其他事件响应
  13. DPDK 无锁ring, 详解
  14. 小程序自定义filter调用报错underfined
  15. android3.0快捷键,向日葵新出版本安卓3.0手机远程控制手机详细教程
  16. redis的雪崩和穿透
  17. 360°全景影像建库流程
  18. 安格最近推出的AG6202来设计一款HDMI 1.4转VGA的产品|AG6202设计应用
  19. 计算机汉字的输入和编辑教案,计算机汉字录入教案.doc
  20. 2018年中国数字经济发展报告:农村数字消费增速超一二线城市

热门文章

  1. 数据结构 – 顺序表
  2. 2020 CCPC-Wannafly Winter Camp Day1 总结
  3. 2018-3-27 遗传算法中的轮盘赌
  4. 20165219王彦博《基于Cortex-M4的虚拟机制作与测试》课程设计个人报告
  5. 【转】Linux思维导图
  6. 五、springcloud之客户端负载均衡Ribbon
  7. 安装和使用git遇到的问题总结
  8. 数据库分享一: MySQL的Innodb缓存相关优化
  9. Mysql 操作技巧
  10. android.view.ViewRoot$CalledFromWrongThreadException的解决办法