手撸一个IDEA防沉迷插件

Idea代码走查工具FindBus使用以及缺陷分析 Findbugs是一个静态分析工具,它检查类或者jar文件,将字节码与一组缺陷模式进行对比以发现可能的问题。利用这个工具可以在不实际运行程序的情况下对软件进行分析。可以帮助改进代码质量。Findbugs提供了方便操作的可视化界面,同时,也可以作为idea插件来使用。 阅读详情

原文地址:https://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 



—————END—————



推荐阅读:


最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。获取方式:关注公众号并回复 666 领取,更多内容陆续奉上。
明天见(。・ω・。)ノ♡
【小程序抓取】解决痛点:如何用 AI-RPA 工具抓取无法获取 URL 的微信小程序数据? 本文探讨了传统爬虫技术在微信小程序数据采集中的局限性,并提出了AI-RPA(人工智能驱动的机器人流程自动化)这一前沿解决方案。随着微信小程序安全防护体系的全面升级(包括证书锁定、加密传输和三级防御机制),传统"抓包-模拟请求"的方式已基本失效。文章对比了Reqable、Fiddler等主流抓包工具的优劣,通过某程旅行小程序案例展示了传统抓包的技术流程和动态参数处理的难点。最终指出,2026年最有效的解决方案是采用AI-RPA技术,通过视觉识别、鼠标键盘模拟、OCR和AI智能体编排的组合方案,直接从小程序UI 阅读详情

相关推荐

金融风控实战:用Python从零搭建贷款违约预测模型(附完整数据集)

本文详细介绍了如何使用Python从零构建金融风控中的贷款违约预测模型,涵盖数据清洗、特征工程、模型构建与评估等全流程。通过实战案例展示逻辑回归、XGBoost和LightGBM三大算法的对比,特别强调AUC-ROC指标在金融风控中的重要性,并附完整数据集和代码实现。

weixin_29175469的博客 238

代码规范之Alibaba Java Coding Guidelines

基于项目实战 整理出来的代码规范插件的使用 团队开发必备神器

weixin_47143458的博客 1万+

Android GWP-Asan机制详解

基本用途:GWP-ASan是一种原生内存分配器功能,在内存分配时额外记录一些信息,用于检测DOUBLE_FREE、USE_AFTER_FREE、INVALID_FREE、BUFFER_OVERFLOW、BUFFER_UNDERFLOW五种内存错误问题。

专注于系统快稳省领域 4145

自动找Bug/插件-代码静态检查findbugs-idea安装以及使用

idea插件/提升效率/提高代码质量/减少bug... Findbugs是一个静态分析工具,它检查类或者JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。Findbugs自带检测器,其中有60余种Bad practice,80余种Correctness,1种 Internationalization,12种Malicious code vulnerability,27种Multithreaded correctness,23种Performance,43种Dodgy。

瑶山的博客 1万+

gcc/g++ 链接库的编译与链接

gcc/g++ 链接库的编译与链接 surgewong@gmail.com http://blog.youkuaiyun.com/surgewong       程序编译一般需要经预处理、编译、汇编和链接几个步骤。在实际应用中,有些公共代码需要反复使用,就把这些代码编译成为“库”文件。在链接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件中,这种库称为静态(链接)库,其特点是可

Surge 4万+

Linux中Hadoop 集群搭建

零、下载Hadoop: http://archive.cloudera.com/cdh5/cdh/5/?tdsourcetag=s_pctim_aiomsg 一、集群规划: 搭建的 hadoop 集群由 3 台服务器组成,分别叫做 master,salve1 和 slave2。其中 master 作为主节点,slave1 和 slave2 作为从节点。 二、网络配置: 1.查看 3 个节点的主机名...

白墨的小白博客 3992

在idea中使用findbugs工具

目录 一、首先需要在idea内部搜索findbugs工具,进行安装 二、自己下载findbugs,安装到Idea中,进行使用 三、find-sec-bugs安全规则组件的应用,在二的步骤中提供了下载路径,在此处直接进行应用 一、首先需要在idea内部搜索findbugs工具,进行安装 简介: 点击File->Setting->Plugins->Marketplace->搜索findbugs->如果下方插件列表有这个插件,直接点击Install按钮进行安装, .

授人以渔的博客 1万+

统信UOS系统网络服务异常排查:WIFI图标消失与网络设置缺失的解决方案

本文详细解析了统信UOS系统WIFI图标消失与网络设置缺失的常见问题,提供了从基础修复到进阶排查的完整解决方案。重点分析了NetworkManager服务异常的根本原因,包括系统更新中断、权限配置错误等,并给出实用的命令行操作指南和预防措施,帮助用户快速恢复网络功能。

weixin_29234239的博客 619

IDEA学习篇——findbugs 插件 下载、安装、使用详解,2024年最新大厂面试时间

为了这次面试,也收集了很多的面试题!以下是部分面试题截图。

2401_84437604的博客 2291

37、基于视觉的轻量级面部呼吸和心率测量技术

本文提出了一种基于视觉的轻量级面部呼吸和心率测量技术,通过远程光电容积脉搏波描记法(RPPG)和面部振动信息实现非接触式生理信号采集。创新性地结合框选和特征点选择多个感兴趣区域(ROI),并采用光流跟踪、主成分分析(PCA)和集成经验模态分解(EEMD)等方法优化信号处理流程。实验结果表明,该方法在测量精度和稳定性方面优于传统方法,并可在树莓派4等低功耗平台上实现实时运行,具有广泛的应用前景。

r7s8t的博客 307

无法将“choco”项识别为 cmdlet、函数、脚本文件或可运行程序的名称的解决方案

本文主要介绍了无法将“choco”项识别为 cmdlet、函数、脚本文件或可运行程序的名称的解决方案,希望能对使用wIndows的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 12万+

沉迷于敲代码?撸一个 IDEA 防沉迷插件

作者:迈克尔嘿嘿juejin.cn/post/6914083794806898695前言当初年少懵懂,那年夏天填志愿选专业,父母听其他长辈说选择计算机专业好。从那以后,我的身上就有了计院...

Java笔记虾 1930

idea出现 EXCEPTION_ACCESS_VIOLATION (0xc0000005) 的解决方法

idea启动的时候出现如下问题,以为没啥事,就索性关闭 后面再打开idea的时候发现直接闪退,之后打开其他软件,直接蓝屏

码农研究僧的博客 4817

撸一个 IDEA 防沉迷插件

点击上方“芋道源码”,选择“设为星标”管她前浪,还是后浪?能浪的浪,才是好浪!每天 8:55 更新文章,每天掉亿点点头发...源码精品专栏原创 | Java 2020 超神之路,很肝~...

芋艿V 275

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

IDEA 版防沉迷插件,有点意思!

分享一个 IDEA 编码防沉迷插件,特别适合沉迷编码无法自拔的朋友使用。这个插件诞生已经有一年多了,目前在 IDEA 官方有 10.3k 的下载量,算是一个不错的成绩了。当初年少懵懂,那年夏天填志愿选专业,父母听其他长辈说选择计算机专业好。从那以后,我的身上就有了计院深深的烙印。从寝室到机房,从机房到图书馆,C、C++、Java、只要是想写点自己感兴趣的东西,一坐就是几个小时,但那时年轻,起身,收拾,一路小跑会女神,轻轻松松。现在工作了,毫无意外的做着开发的工作,长时间久坐。

qq_67508379的博客 1063

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

元旦节肝了一晚上,撸了一个 IDEA 防沉迷插件!

点击上方的终端研发部,右上角选择“设为星标”介绍该插件帮助部分程序员沉迷于长时间编写时,用于休息提醒。每隔多少分钟,就弹出一个提醒对话框, 休息倒计时,除非啥是进程,重启idea。愿每一...

这个时代,作为程序员可能要学习小程序 650

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

朋友沉迷代码,他媳妇为了增进感情,给他撸了一个IDEA防沉迷插件

点击上方蓝色字体,选择“标星公众号”优质文章,第一时间送达关注公众号后台回复pay或mall获取实战项目资料+视频作者:迈克尔嘿嘿juejin.cn/post/6914083794806...

公众号-老炮说Java 412

【IDEA】常用插件、设置、注释

Idea的基础设置

人类所有真实的快乐,一定是恒久的努力 3万+

一款 IDEA 代码防沉迷插件刷爆,偷偷给同事装一个 !

点击上方“码农突围”,马上关注 这里是码农充电第一站,回复“666”,获取一份专属大礼包 真爱,请设置“星标”或点个“在看”来源:juejin.cn/post/69140837948068...

欢迎关注公众号:【码农突围】,回复9999,可以获取一份LeetCode刷题笔记 201

装了这几个插件后,我不得不给 IDEA 上个防沉迷

这次来和大家分享几个好玩的 IDEA 插件 ,非常有意思的~装完后,我惊呼:这还是我的 IDEA 开发工具吗??得劲 哈哈哈????Yo Progress Bar一个挺好玩的进度条插件 哈哈 ...

HollisChuang's Blog 1304

推荐开源项目:Idea防沉迷插件 - StopCoding

推荐开源项目:Idea防沉迷插件 - StopCoding 在编程的世界里,我们常常沉醉于一行行代码之间,忘记了时间的流转和身体的呼唤。为了解决这个问题,我们向您推荐一款贴心的小工具——StopCoding,这是一款专为IntelliJ IDEA打造的防沉迷插件,旨在帮助开发者更好地管理自己的工作与休息时间。 项目介绍 StopCoding简单而实用,它巧妙地融入您的IDE,当您设定的工作时间到达...

gitblog_00012的博客 575

IDEA 中的神奇插件:防沉迷、防猝死 ...

作者 |迈克尔嘿嘿叛逆的仔:不听老板的话,还要用行动给老板来个响亮耳光!前言当初年少懵懂,那年夏天填志愿选专业,父母听其他长辈说选择计算机专业好。从那以后,我的身上就有了计院深深的烙印。...

程序IT圈 322

IDEA 中的神奇插件:防沉迷、防猝死...

作者 |迈克尔嘿嘿来源 |https://juejin.cn/post/6914083794806898695叛逆的仔:不听老板的话,还要用行动给老板来个响亮耳光!前言当初年少懵懂,...

程序猿DD 1398

反卷神器!idea强制休息防沉迷小插件

idea防沉迷小插件介绍

qq_59622162的博客 911
上一篇: ​LeetCode刷题实战182:查找重复的电子邮箱
下一篇: 炸裂!MySQL 82 张图带你飞!
编程IT圈
博客等级 码龄6年 1130粉丝 544原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值