<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插件刷爆了朋友圈,網友:這用起來有點酸爽~

          共 2736字,需瀏覽 6分鐘

           ·

          2021-01-29 15:27

          來源:juejin.cn/post/6914083794806898695


          當初年少懵懂,那年夏天填志愿選專業(yè),父母聽其他長輩說選擇計算機專業(yè)好。從那以后,我的身上就有了計院深深的烙印。

          從寢室到機房,從機房到圖書館,C、C++、Java、只要是想寫點自己感興趣的東西,一坐就是幾個小時,但那時年輕,起身,收拾,一路小跑會女神,輕輕松松。

          現在工作了,毫無意外的做著開發(fā)的工作,長時間久坐。寫代碼一忙起來就忘了起來活動一下,也不怎么喝水。經常等到忙完了就感覺腰和腿不舒服。直到今年的體檢報告一下來,才幡然醒悟:沒有一個好身體,就不能好好打工,讓老板過上他自己想要的生活了.

          試過用手機提醒自己,但是沒用。

          小米手環(huán)的久坐提醒功能也開著,有時候寫代碼正入神的,時間到了也就點一下就關了,還是沒什么作用。

          所以我想究竟是我太賴了,還是用Idea寫代碼容易沉迷,總之不可能是改需求有意思。所以元旦節(jié)打算為自己開發(fā)一款小小的Idea防沉迷插件,我叫她【StopCoding】。

          她應該可以設置每隔多少分鐘,就彈出一個提醒對話框,一旦對話框彈出來,idea的代碼編輯框就自動失去了焦點,什么都不能操作,到這還不算完,關鍵是這個對話框得關不了,并且還顯示著休息倒計時,還有即使我修改了系統(tǒng)時間,這個倒計時也依然有效,除非我打開任務管理器,關閉Idea的進程,然后再重新啟動Idea。

          但是想一下想,idea都都關了,還是休息一下吧。

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

          # 安裝使用教程


          安裝


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

          2. 內網開發(fā)的小伙伴 可以下載之后進行本地安裝:

          https://github.com/jogeen/StopCoding/releases/tag/20210104-V1.0

          • 本地安裝:


          使用


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


          Step2. 設置適合你的參數然后保存。

          Step3. 然后快樂的Coding吧,再不用擔心自己會沉迷了。工作時間結束,她會彈出下框進行提醒,當然,這個框是關不掉的.只有你休息了足夠的時間它才會自動關閉.


          # 開發(fā)教程


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

          技術范圍


          • 插件工程的基本結構
          • Swing 主要負責兩個對話框的交互
          • Timer 作為最基本的定時器選擇


          插件工程結構



          • plugin.xml
          這是插件工程的核心配置文件。

          • data包
            • SettingData,配置信息對應model
            • DataCenter,作為運行時的數據中心,都是些靜態(tài)的全局變量

          • service
            • TimerService 這個定時計算的核心代碼

          • task
            • RestTask 休息時的定時任務
            • WorkTask 工作時的定時任務

          • ui
            • SettingDialog 設置信息的對話框
            • TipsDialog 休息時提醒的對話框

          • StopCodingSettingAction 啟動入口的action

          Swing


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

          創(chuàng)建對話框


          Step1

          Step2

          Step3

          注:這里并沒有詳細的展開Swing的講解,因為界面的這個東西,需要大家多去自己實踐。這里就不做手冊式的贅述了。

          添加事件


          其實,剛才創(chuàng)建的這個對話框里的兩個按鈕都是默認已經創(chuàng)建好了點擊事件的。
          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按鈕綁定點擊事件的監(jiān)聽器
          buttonCancel.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { onCancel(); } });//這是給取消按鈕綁定點擊事件的監(jiān)聽器 //其他代碼 }

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

          step1


          step2


          Timer定時器


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

          • 構造方法

          • 成員防范
          • 主要是schedule去添加一個定時任務,和使用cancel去取消任務停止定時器。


          # 最后


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

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

          題外話:推薦一個GitHub項目,這個 GitHub 整理了上百本常用技術PDF,絕大部分核心的技術書籍都可以在這里找到,GitHub地址:https://github.com/gsjqwyl/awesome-ebook(電腦打開體驗更好),地址閱讀原文直達。麻煩打個給個Star,持續(xù)更新中...


          ---END---

          文末福利



          瀏覽 50
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <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>
                  青娱乐福利视频 | 日韩三级大香蕉 | 亚洲一级视频在线观看 | 亚洲AV成人无码www在线观看 | 丁香五月天婷婷激情网 |