
來源: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

圖片使用圖片
圖片
圖片開發教程
這個插件非常的簡約,界面操作也很簡單。所使用的技術基本上都是java的基礎編程知識。所以小夥伴感興趣的話,一起看看吧。
技術範圍圖片
這是插件工程的核心配置文件,裡面每一項的解釋,可以參考第一篇的介紹:
https://juejin.cn/post/6844904127990857742
data包
service
task
ui
StopCodingSettingAction 啟動入口的action
Swing
其實在idea中開發Swing項目的界面非常簡單。因為idea提供了一系列可視化的操作,以及控件布局的拖拽。接下來就簡單的介紹一下對話框的創建過程和添加事件。
創建對話框圖片
圖片
圖片
其實,剛才創建的這個對話框裡的兩個按鈕都是默認已經創建好了點擊事件的。
publicclassTestDialogextendsJDialog{privateJPanelcontentPane;privateJButtonbuttonOK;privateJButtonbuttonCancel;publicTestDialog(){setContentPane(contentPane);setModal(true);getRootPane().setDefaultButton(buttonOK);buttonOK.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){onOK();}});//這是給OK按鈕綁定點擊事件的監聽器buttonCancel.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){onCancel();}});//這是給取消按鈕綁定點擊事件的監聽器//其他代碼}
當然我們也可以其它任何控件去創建不同的事件監聽器。這裡可以通過界面操作創建很多種監聽器,只要你需要,就可以使用。

圖片圖片Timer定時器
在這個插件裡面,需要用到定時的功能,同時去計算公國和休息的時間。所以使用JDK自帶的Timer,非常的方便。下面我Timer的常用的api放在這裡,就清楚它的使用了。

圖片圖片
相信有了這些基本介紹,感謝興趣的小夥伴想去看看源碼和嘗試自己寫一個小插件就沒什麼大問題了。
希望這個插件能幫到作為程序員得你,和這篇文章對你有一點點啟發。當然麻煩小夥伴點個讚,鼓勵一下打工人。
END
關注後端面試那些事,回復【2022面經】
獲取最新大廠Java面經

