騷操作 !IDEA 防止寫代碼沉迷插件 !

Python實戰社羣

Java實戰社羣

長按識別下方二維碼,按需求添加

掃碼關注添加客服

進Python社羣▲

掃碼關注添加客服

進Java社羣

作者丨邁克爾嘿嘿

來源丨掘金

鏈接:

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

程序員專欄 掃碼關注填加客服 長按識別下方二維碼進羣
近期精彩內容推薦:   朋友入職中軟一個月(外包華爲)就離職了! 再見,胡阿姨!再見,共享單車! 一代經典銷聲匿跡:WinXP徹底再見了! 2021年1月編程語言排行榜


在看點這裏好文分享給更多人↓↓
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章