骚操作,IDEA防止写代码沉迷插件 !
當初年少懵懂,那年夏天填志愿選專業,父母聽其他長輩說選擇計算機專業好。從那以后,我的身上就有了計院深深的烙印。從寢室到機房,從機房到圖書館,C、C++、Java、只要是想寫點自己感興趣的東西,一坐就是幾個小時,但那時年輕,起身,收拾,一路小跑會女神,輕輕松松。
現在工作了,毫無意外的做著開發的工作,長時間久坐。寫代碼一忙起來就忘了起來活動一下,也不怎么喝水。經常等到忙完了就感覺腰和腿不舒服。直到今年的體檢報告一下來,才幡然醒悟:沒有一個好身體,就不能好好打工,讓老板過上他自己想要的生活了.
試過用手機提醒自己,但是沒用。小米手環的久坐提醒功能也開著,有時候寫代碼正入神的,時間到了也就點一下就關了,還是沒什么作用。所以我想究竟是我太賴了,還是用 IDEA 寫代碼容易沉迷,總之不可能是改需求有意思。所以元旦節打算為自己開發一款小小的 IDEA 防沉迷插件,我叫她【StopCoding】。
她應該可以設置每隔多少分鐘,就彈出一個提醒對話框,一旦對話框彈出來,IDEA 的代碼編輯框就自動失去了焦點,什么都不能操作,到這還不算完,關鍵是這個對話框得關不了,并且還顯示著休息倒計時,還有即使我修改了系統時間,這個倒計時也依然有效,除非我打開任務管理器,關閉 IDEA 的進程,然后再重新啟動 IDEA。但是想一下想,IDEA 都都關了,還是休息一下吧。
那么接下來就來介紹一下她的安裝和使用吧。
安裝和使用教程
安裝方式 1
在線安裝:在 IDEA 插件市場中直接搜索安裝 StopCoding 插件(官方已經審核通過),如下圖所示:
安裝方式 2
2. 如果是內網開發的小伙伴,可以使用離線安裝。
先下載安裝包,下載地址:https://github.com/jogeen/StopCoding/releases/tag/20210114-V1.2
再進行本地安裝:
使用
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 放在這里,就清楚它的使用了。
構造方法
img
成員防范
主要是 schedule 去添加一個定時任務,和使用 cancel 去取消任務停止定時器。
最后
相信有了這些基本介紹,感謝興趣的小伙伴想去看看源碼和嘗試自己寫一個小插件就沒什么大問題了。不說了,我得休息了。希望這個插件能幫到作為程序員得你,和這篇文章對你有一點點啟發。當然麻煩小伙伴點個贊,鼓勵一下打工人。
源碼地址:https://github.com/jogeen/StopCoding
往期推薦IDEA 不為人知的 5 個騷技巧!真香!
安利一個IDEA騷操作:一鍵生成方法的序列圖
免費領取 IDEA激活碼的6種方法!
關注我,每天陪你進步一點點!
總結
以上是生活随笔為你收集整理的骚操作,IDEA防止写代码沉迷插件 !的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 面试官 | SpringBoot 中如何
- 下一篇: 支付宝上市,让我损失了2000万(盘点这