<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

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

          共 2899字,需瀏覽 6分鐘

           ·

          2021-01-14 19:23

          原文地址:juejin.cn/post/6914083794806898695


          圖片

          前言

          當(dāng)初年少懵懂,那年夏天填志愿選專業(yè),父母聽其他長輩說選擇計(jì)算機(jī)專業(yè)好。從那以后,我的身上就有了計(jì)院深深的烙印。從寢室到機(jī)房,從機(jī)房到圖書館,C、C++、Java、只要是想寫點(diǎn)自己感興趣的東西,一坐就是幾個(gè)小時(shí),但那時(shí)年輕,起身,收拾,一路小跑會女神,輕輕松松。現(xiàn)在工作了,毫無意外的做著開發(fā)的工作,長時(shí)間久坐。寫代碼一忙起來就忘了起來活動一下,也不怎么喝水。經(jīng)常等到忙完了就感覺腰和腿不舒服。直到今年的體檢報(bào)告一下來,才幡然醒悟:沒有一個(gè)好身體,就不能好好打工,讓老板過上他自己想要的生活了.

          試過用手機(jī)提醒自己,但是沒用。小米手環(huán)的久坐提醒功能也開著,有時(shí)候?qū)懘a正入神的,時(shí)間到了也就點(diǎn)一下就關(guān)了,還是沒什么作用。所以我想究竟是我太賴了,還是用 IDEA 寫代碼容易沉迷,總之不可能是改需求有意思。所以元旦節(jié)打算為自己開發(fā)一款小小的 IDEA 防沉迷插件,我叫她【StopCoding】。她應(yīng)該可以設(shè)置每隔多少分鐘,就彈出一個(gè)提醒對話框,一旦對話框彈出來,IDEA 的代碼編輯框就自動失去了焦點(diǎn),什么都不能操作,到這還不算完,關(guān)鍵是這個(gè)對話框得關(guān)不了,并且還顯示著休息倒計(jì)時(shí),還有即使我修改了系統(tǒng)時(shí)間,這個(gè)倒計(jì)時(shí)也依然有效,除非我打開任務(wù)管理器,關(guān)閉 IDEA 的進(jìn)程,然后再重新啟動 IDEA。但是想一下想,IDEA 都都關(guān)了,還是休息一下吧。

          下面就介紹一下她簡單的使用教程和開發(fā)教程

          安裝使用教程

          安裝

          1. 在 IDEA 中直接搜索安裝 StopCoding 插件(官方已經(jīng)審核通過)

          2. 內(nèi)網(wǎng)開發(fā)的小伙伴 可以下載之后進(jìn)行本地安裝 下載地址

          • 本地安裝:

          img

          使用

          • Step1. 然后在菜單欄中 tools->StopCoding

          img

          • Step2. 設(shè)置適合你的參數(shù)然后保存。
          圖片
          • Step3. 然后快樂的 Coding 吧,再不用擔(dān)心自己會沉迷了。工作時(shí)間結(jié)束,她會彈出下框進(jìn)行提醒,當(dāng)然,這個(gè)框是關(guān)不掉的.只有你休息了足夠的時(shí)間它才會自動關(guān)閉.
          圖片

          開發(fā)教程

          這個(gè)插件非常的簡約,界面操作也很簡單。所使用的技術(shù)基本上都是 java 的基礎(chǔ)編程知識。所以小伙伴感興趣的話,一起看看吧。

          技術(shù)范圍

          • 插件工程的基本結(jié)構(gòu)
          • Swing 主要負(fù)責(zé)兩個(gè)對話框的交互
          • Timer 作為最基本的定時(shí)器選擇

          插件工程結(jié)構(gòu)

          圖片
          • plugin.xml

          這是插件工程的核心配置文件,里面每一項(xiàng)的解釋,可以參考第一篇的介紹核心配置文件說明。

          • data


            • SettingData :配置信息對應(yīng) model
            • DataCenter :作為運(yùn)行時(shí)的數(shù)據(jù)中心,都是些靜態(tài)的全局變量
          • service


            • TimerService :這個(gè)定時(shí)計(jì)算的核心代碼
          • task


            • RestTask :休息時(shí)的定時(shí)任務(wù)
            • WorkTask :工作時(shí)的定時(shí)任務(wù)
          • ui


            • SettingDialog :設(shè)置信息的對話框
            • TipsDialog : 休息時(shí)提醒的對話框
          • StopCodingSettingAction :啟動入口的 action

          Swing

          其實(shí)在 IDEA 中開發(fā) Swing 項(xiàng)目的界面非常簡單。因?yàn)?IDEA 提供了一系列可視化的操作,以及控件布局的拖拽。接下來就簡單的介紹一下對話框的創(chuàng)建過程和添加事件。

          創(chuàng)建對話框

          • Step1
          圖片
          • Step2
          圖片
          • Step3
          圖片
          • 注:這里并沒有詳細(xì)的展開 Swing 的講解,因?yàn)榻缑娴倪@個(gè)東西,需要大家多去自己實(shí)踐。這里就不做手冊式的贅述了。

          添加事件

          其實(shí),剛才創(chuàng)建的這個(gè)對話框里的兩個(gè)按鈕都是默認(rèn)已經(jīng)創(chuàng)建好了點(diǎn)擊事件的。

          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按鈕綁定點(diǎn)擊事件的監(jiān)聽器

          ????????buttonCancel.addActionListener(new?ActionListener()?{
          ????????????public?void?actionPerformed(ActionEvent?e)?{
          ????????????????onCancel();
          ????????????}
          ????????});//這是給取消按鈕綁定點(diǎn)擊事件的監(jiān)聽器
          ????//其他代碼
          ????}

          當(dāng)然我們也可以其它任何控件去創(chuàng)建不同的事件監(jiān)聽器。這里可以通過界面操作創(chuàng)建很多種監(jiān)聽器,只要你需要,就可以使用。

          • step1
          圖片
          • step2
          圖片

          Timer 定時(shí)器

          在這個(gè)插件里面,需要用到定時(shí)的功能,同時(shí)去計(jì)算公國和休息的時(shí)間。所以使用 JDK 自帶的 Timer,非常的方便。下面我 Timer 的常用的 api 放在這里,就清楚它的使用了。

          • 構(gòu)造方法

          img

          • 成員防范

          img

          • 主要是 schedule 去添加一個(gè)定時(shí)任務(wù),和使用 cancel 去取消任務(wù)停止定時(shí)器。

          最后

          相信有了這些基本介紹,感謝興趣的小伙伴想去看看源碼和嘗試自己寫一個(gè)小插件就沒什么大問題了。不說了,我得休息了。希望這個(gè)插件能幫到作為程序員得你,和這篇文章對你有一點(diǎn)點(diǎn)啟發(fā)。當(dāng)然麻煩小伙伴點(diǎn)個(gè)贊,鼓勵(lì)一下打工人。

          源碼地址:https://github.com/jogeen/StopCoding

          END


          有熱門推薦??

          1.?10 分鐘使用 Spring Boot + Vue + Antd + US3 搭建自己的圖床

          2.?從volatile說到i++的線程安全問題

          3.?雙十一秒殺架構(gòu)模型設(shè)計(jì)

          4.?一個(gè)基于 SpringBoot 開源的小說和漫畫在線閱讀網(wǎng)站,簡潔大方 !強(qiáng)烈推薦 !

          最近面試BAT,整理一份面試資料Java面試BATJ通關(guān)手冊,覆蓋了Java核心技術(shù)、JVM、Java并發(fā)、SSM、微服務(wù)、數(shù)據(jù)庫、數(shù)據(jù)結(jié)構(gòu)等等。

          獲取方式:點(diǎn)“在看”,關(guān)注公眾號并回復(fù)?Java?領(lǐng)取,更多內(nèi)容陸續(xù)奉上。

          文章有幫助的話,在看,轉(zhuǎn)發(fā)吧。

          謝謝支持喲 (*^__^*)

          瀏覽 68
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产无码在线看 | 国产69精品久久久久久久 | 天天干天天添 | 色护士在线综合资源视频 | 免费爱爱视频 |