最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

第三方包jintellitype實(shí)現(xiàn)Java設(shè)置全局熱鍵

 更新時(shí)間:2014年09月14日 10:28:17   投稿:hebedich  
本文主要介紹了,在java中使用第三方插件包jintellitype來實(shí)現(xiàn)全局熱鍵,非常的簡單,但是很實(shí)用,有需要的朋友可以參考下,歡迎一起來參與改進(jìn)此項(xiàng)目

Java原生API并不支持為應(yīng)用程序設(shè)置全局熱鍵。要實(shí)現(xiàn)全局熱鍵,需要用JNI方式實(shí)現(xiàn),這就涉及到編寫C/C++代碼,這對于大多數(shù)不熟悉C/C++的javaer來說,有點(diǎn)困難。不過幸好,國外有人已經(jīng)實(shí)現(xiàn)了,發(fā)布成第三方j(luò)ava包,借此,我們可以很方便的設(shè)置全局熱鍵而不用編寫任何C/C++代碼。

  jintellitype官網(wǎng)貌似目前訪問不到,這里提供下載:http://m.fzitv.net/softs/217788.html。

  jintellitype由兩部分組成,一部分是java寫的jintellityp的jar文件,另一部分是C/C++寫的已編譯好的dll文件,有兩個(gè)dll文件,分別是32位和64位系統(tǒng)的。在我使用jintellitype的過程中,把jintellitype的jar文件Build進(jìn)項(xiàng)目后,不知道dll文件放哪,我試著運(yùn)行,根據(jù)錯(cuò)誤提示,原來需要把dll文件放到項(xiàng)目com.melloware.jintellitype包下。建議同時(shí)把兩個(gè)dll文件都加進(jìn)去,這樣,你的程序就可以同時(shí)兼容32位和64位系統(tǒng),而你不需要任何額外的處理。

  貼上我的小demo代碼:

 package com.jebysun.globlehotkey;
 
 import java.awt.Insets;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 
 import javax.swing.JButton;
 import javax.swing.JFrame;
 import javax.swing.JOptionPane;
 
 import com.melloware.jintellitype.HotkeyListener;
 import com.melloware.jintellitype.JIntellitype;
 
 /**
 * 利用JIntellitype實(shí)現(xiàn)全局熱鍵設(shè)置
 * @author Jeby Sun
 *
 */
 public class GlobleHotKeyDemo extends JFrame {
 
   private static final long serialVersionUID = 1L;
   
   //定義熱鍵標(biāo)識(shí),用于在設(shè)置多個(gè)熱鍵時(shí),在事件處理中區(qū)分用戶按下的熱鍵
   public static final int FUNC_KEY_MARK = 1;
   public static final int EXIT_KEY_MARK = 0;
   
   JButton msgBtn;
   JButton exitBtn;
 
   public GlobleHotKeyDemo() {
     this.setTitle("全局熱鍵設(shè)置");
     this.setBounds(100, 100, 600, 400);
     this.setLayout(null);
     this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
     msgBtn = new JButton("彈出框(Alt+S)");
     //設(shè)置按鈕邊距
     msgBtn.setMargin(new Insets(0,0,0,0));
     msgBtn.setFocusable(false);
     msgBtn.setBounds(20, 20, 120, 30);
     msgBtn.addActionListener(new ActionListener() {
       @Override
       public void actionPerformed(ActionEvent e) {
         showMessage();
       }
     });
     this.add(msgBtn);
     
     exitBtn = new JButton("退出(Alt+Q)");
     exitBtn.setMargin(new Insets(0,0,0,0));
     exitBtn.setFocusable(false);
     exitBtn.setBounds(160, 20, 120, 30);
     exitBtn.addActionListener(new ActionListener() {
       @Override
       public void actionPerformed(ActionEvent e) {
         System.exit(0);
       }
     });
     this.add(exitBtn);
     
     //第一步:注冊熱鍵,第一個(gè)參數(shù)表示該熱鍵的標(biāo)識(shí),第二個(gè)參數(shù)表示組合鍵,如果沒有則為0,第三個(gè)參數(shù)為定義的主要熱鍵
     JIntellitype.getInstance().registerHotKey(FUNC_KEY_MARK, JIntellitype.MOD_ALT, (int)'S'); 
     JIntellitype.getInstance().registerHotKey(EXIT_KEY_MARK, JIntellitype.MOD_ALT, (int)'Q'); 
     
     //第二步:添加熱鍵監(jiān)聽器
     JIntellitype.getInstance().addHotKeyListener(new HotkeyListener() {
       
       @Override
       public void onHotKey(int markCode) {
         switch (markCode) { 
         case FUNC_KEY_MARK: 
           showMessage();
           break; 
         case EXIT_KEY_MARK: 
           System.exit(0);
           break;  
         }         
       }
     }); 
     
     this.setVisible(true);
   }
   
   public void showMessage() {
     JOptionPane.showMessageDialog(null, "就算把窗口最小化,按快捷鍵Alt+S也可以彈出提示框哦!", "彈出框標(biāo)題", JOptionPane.INFORMATION_MESSAGE);
   }
   
   public static void main(String[] args) {
     new GlobleHotKeyDemo();
   }
 }

其實(shí),jintellitype的使用非常簡單,就3個(gè)步驟:

第一步:添加jar包和dll文件;

第二步:注冊熱鍵;

第三步:添加熱鍵監(jiān)聽器,實(shí)現(xiàn)接口的方法;

相關(guān)文章

  • 一文帶你搞懂java如何實(shí)現(xiàn)網(wǎng)絡(luò)NIO高并發(fā)編程

    一文帶你搞懂java如何實(shí)現(xiàn)網(wǎng)絡(luò)NIO高并發(fā)編程

    NIO是?Java?在?JDK?1.4?中引入的一套新的?I/O?API,旨在解決傳統(tǒng)?I/O高并發(fā)場景下的性能和擴(kuò)展性不足的問題,下面就跟隨小編一起深入了解下NIO高并發(fā)編程吧
    2024-12-12
  • Java Set簡介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java Set簡介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Set最大的特性就是不允許在其中存放的元素是重復(fù)的。接下來通過本文給大家分享java set常用方法和原理分析,需要的的朋友參考下吧
    2017-05-05
  • SpringBoot配置的加載流程詳細(xì)分析

    SpringBoot配置的加載流程詳細(xì)分析

    了解內(nèi)部原理是為了幫助我們做擴(kuò)展,同時(shí)也是驗(yàn)證了一個(gè)人的學(xué)習(xí)能力,如果你想讓自己的職業(yè)道路更上一層樓,這些底層的東西你是必須要會(huì)的,這篇文章主要介紹了SpringBoot配置的加載流程
    2023-01-01
  • mybatis攔截器實(shí)現(xiàn)數(shù)據(jù)庫數(shù)據(jù)權(quán)限隔離方式

    mybatis攔截器實(shí)現(xiàn)數(shù)據(jù)庫數(shù)據(jù)權(quán)限隔離方式

    通過Mybatis攔截器,在執(zhí)行SQL前添加條件實(shí)現(xiàn)數(shù)據(jù)權(quán)限隔離,特別是對于存在用戶ID區(qū)分的表,攔截器會(huì)自動(dòng)添加如user_id=#{userId}的條件,確保SQL在執(zhí)行時(shí)只能操作指定用戶的數(shù)據(jù),此方法主要應(yīng)用于Mybatis的四個(gè)階段
    2024-11-11
  • Spring的@CrossOrigin注解處理請求源碼解析

    Spring的@CrossOrigin注解處理請求源碼解析

    這篇文章主要介紹了Spring的@CrossOrigin注解處理請求源碼解析,@CrossOrigin源碼解析主要分為兩個(gè)階段@CrossOrigin注釋的方法掃描注冊,請求匹配@CrossOrigin注釋的方法,本文從源碼角度進(jìn)行解析,需要的朋友可以參考下
    2023-12-12
  • 關(guān)于Springboot數(shù)據(jù)庫配置文件明文密碼加密解密的問題

    關(guān)于Springboot數(shù)據(jù)庫配置文件明文密碼加密解密的問題

    這篇文章主要介紹了Springboot數(shù)據(jù)庫配置文件明文密碼加密解密的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • SpringCloud中的Stream服務(wù)間消息傳遞詳解

    SpringCloud中的Stream服務(wù)間消息傳遞詳解

    這篇文章主要介紹了SpringCloud中的Stream服務(wù)間消息傳遞詳解,Stream 就是在消息隊(duì)列的基礎(chǔ)上,對其進(jìn)行封裝,可以是我們更方便的去使用,Stream應(yīng)用由第三方的中間件組成,應(yīng)用間的通信通過輸入通道和輸出通道完成,需要的朋友可以參考下
    2024-01-01
  • Idea 2020.2 創(chuàng)建web、Spring項(xiàng)目的教程圖解

    Idea 2020.2 創(chuàng)建web、Spring項(xiàng)目的教程圖解

    這篇文章主要介紹了Idea 2020.2 創(chuàng)建web、Spring項(xiàng)目的教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Java手把手必會(huì)的實(shí)例漢諾塔講解練習(xí)

    Java手把手必會(huì)的實(shí)例漢諾塔講解練習(xí)

    漢諾塔,傳說神在創(chuàng)造世界的時(shí)候做了三根金剛石柱子,并在一個(gè)教塔里留下了三根金剛石棒,第一根上面從上到下套著64個(gè)按從小到大排列的金盤,神命令廟里的眾僧將它們一個(gè)個(gè)地從這根金剛石棒搬到另一根金剛石棒上,大盤不能放在小盤上。最后64個(gè)金盤仍然要按從小到大排列
    2021-09-09
  • java后端如何調(diào)用第三方接口(往header和body中的參數(shù)傳參)

    java后端如何調(diào)用第三方接口(往header和body中的參數(shù)傳參)

    這篇文章主要介紹了java后端如何調(diào)用第三方接口(往header和body中的參數(shù)傳參),具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12

最新評論

册亨县| 和平区| 乐清市| 衡南县| 枞阳县| 民乐县| 犍为县| 安新县| 寿光市| 蒙自县| 溧水县| 双柏县| 榆树市| 卢湾区| 左权县| 满城县| 山阴县| 武义县| 清涧县| 广宁县| 怀宁县| 肇源县| 南充市| 孝义市| 威信县| 唐河县| 湾仔区| 宁津县| 乌兰县| 开江县| 曲周县| 泗阳县| 新竹市| 莱州市| 同德县| 井陉县| 炉霍县| 武威市| 屯留县| 安达市| 华容县|