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

java實(shí)現(xiàn)全局監(jiān)聽鍵盤詳解

 更新時(shí)間:2024年01月03日 08:32:17   作者:赤旗  
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)全局監(jiān)聽鍵盤的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解下

前言

在github上看一些開源的項(xiàng)目時(shí),常常有一些英文單詞和句子需要翻譯,當(dāng)前的翻譯軟件以及劃詞插件,多少都有一些弊端。比如翻譯軟件過于臃腫,劃詞插件只能在瀏覽器中使用,且不需要使用翻譯功能時(shí)也會(huì)出現(xiàn)。

deepl有一個(gè)ctrl+c+c自動(dòng)懸浮翻譯的功能,比較能滿足我的需求,但很多時(shí)候因?yàn)閐eepl的懸浮翻譯框都是在旋轉(zhuǎn)的狀態(tài),網(wǎng)絡(luò)上檢索時(shí),說是因?yàn)榉?wù)器問題。好吧。

于是想自己寫一個(gè)小工具,實(shí)現(xiàn)deepl ctrl+c+c翻譯的功能。

java中的監(jiān)聽鍵盤的api,必須先創(chuàng)建一個(gè)窗口,且鼠標(biāo)聚焦在該窗口中才能使用,無法實(shí)現(xiàn)我全局監(jiān)聽鍵盤的需求,于是在一番檢索之后,找到了以下兩個(gè)開源項(xiàng)目。

比較后,我選擇了jnativehook,因?yàn)檫@個(gè)項(xiàng)目維護(hù)的較好,同時(shí)還有全局鼠標(biāo),全局鼠標(biāo)滾輪等功能。

ctrl+c+c翻譯實(shí)現(xiàn)見這篇筆記:自制Java工具實(shí)現(xiàn)翻譯鼠標(biāo)選中文本,本文只介紹全局監(jiān)聽鍵盤實(shí)現(xiàn)方法

使用方法

在maven中添加地址:

<dependency>
  <groupId>com.github.kwhat</groupId>
  <artifactId>jnativehook</artifactId>
  <version>2.2.2</version>
</dependency>

在項(xiàng)目主頁找到demo代碼:

import com.github.kwhat.jnativehook.GlobalScreen;
import com.github.kwhat.jnativehook.NativeHookException;
import com.github.kwhat.jnativehook.keyboard.NativeKeyEvent;
import com.github.kwhat.jnativehook.keyboard.NativeKeyListener;

public class GlobalKeyListenerExample implements NativeKeyListener {
	public void nativeKeyPressed(NativeKeyEvent e) {
		System.out.println("Key Pressed: " + NativeKeyEvent.getKeyText(e.getKeyCode()));

		if (e.getKeyCode() == NativeKeyEvent.VC_ESCAPE) {
            		try {
                		GlobalScreen.unregisterNativeHook();
            		} catch (NativeHookException nativeHookException) {
                		nativeHookException.printStackTrace();
            		}
        	}
	}

	public void nativeKeyReleased(NativeKeyEvent e) {
		System.out.println("Key Released: " + NativeKeyEvent.getKeyText(e.getKeyCode()));
	}

	public void nativeKeyTyped(NativeKeyEvent e) {
		System.out.println("Key Typed: " + e.getKeyText(e.getKeyCode()));
	}

	public static void main(String[] args) {
		try {
			GlobalScreen.registerNativeHook();
		}
		catch (NativeHookException ex) {
			System.err.println("There was a problem registering the native hook.");
			System.err.println(ex.getMessage());

			System.exit(1);
		}

		GlobalScreen.addNativeKeyListener(new GlobalKeyListenerExample());
	}
}

運(yùn)行后按鍵:

方法解析

  • nativeKeyPressed:當(dāng)鍵盤上的某個(gè)鍵被按下時(shí),這個(gè)函數(shù)會(huì)被調(diào)用。它首先打印出被按下的鍵的文本信息,然后檢查是否是"Escape"鍵(即VC_ESCAPE常量的值),如果是,就嘗試注銷全局鍵盤鉤子。如果在注銷過程中發(fā)生異常,就會(huì)捕獲并打印這個(gè)異常。
  • nativeKeyReleased:當(dāng)鍵盤上的某個(gè)鍵被釋放時(shí),這個(gè)函數(shù)會(huì)被調(diào)用。它打印出被釋放的鍵的文本信息。
  • nativeKeyTyped:當(dāng)鍵盤上的某個(gè)鍵被輸入時(shí),這個(gè)函數(shù)會(huì)被調(diào)用。它打印出被輸入的鍵的文本信息。

總結(jié)

當(dāng)可以監(jiān)聽到鍵盤按鍵后,就可以實(shí)現(xiàn)一些對(duì)應(yīng)的功能,比如開頭說的**ctrl+c+c **翻譯鼠標(biāo)選中內(nèi)容,或者按鍵模擬樂器等。

到此這篇關(guān)于java實(shí)現(xiàn)全局監(jiān)聽鍵盤詳解的文章就介紹到這了,更多相關(guān)java全局監(jiān)聽鍵盤內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot 創(chuàng)建容器的實(shí)現(xiàn)

    SpringBoot 創(chuàng)建容器的實(shí)現(xiàn)

    這篇文章主要介紹了SpringBoot 創(chuàng)建容器的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Mac安裝和配置Java JDK的完整教程

    Mac安裝和配置Java JDK的完整教程

    文章詳細(xì)介紹了Java JDK的相關(guān)知識(shí),包括JDK的定義、核心組成、版本說明、安裝方法、環(huán)境變量配置、常見問題及解決方案,并提供了在Mac上安裝和配置JDK的具體步驟,最后,還給出了后續(xù)學(xué)習(xí)建議,強(qiáng)調(diào)了配置完成后的開發(fā)步驟,需要的朋友可以參考下
    2026-04-04
  • springboot項(xiàng)目打jar制作成鏡像并指定配置文件位置方式

    springboot項(xiàng)目打jar制作成鏡像并指定配置文件位置方式

    這篇文章主要介紹了springboot項(xiàng)目打jar制作成鏡像并指定配置文件位置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • java實(shí)現(xiàn)將文件上傳到ftp服務(wù)器的方法

    java實(shí)現(xiàn)將文件上傳到ftp服務(wù)器的方法

    這篇文章主要介紹了java實(shí)現(xiàn)將文件上傳到ftp服務(wù)器的方法,結(jié)合實(shí)例形式分析了基于java實(shí)現(xiàn)的ftp文件傳輸類定義與使用方法,需要的朋友可以參考下
    2016-08-08
  • python 與HFSS聯(lián)合仿真的教程講解

    python 與HFSS聯(lián)合仿真的教程講解

    這篇文章主要介紹了python 與HFSS聯(lián)合仿真的教程講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Java實(shí)現(xiàn)多文件壓縮加密并重命名壓縮文件對(duì)象的方法

    Java實(shí)現(xiàn)多文件壓縮加密并重命名壓縮文件對(duì)象的方法

    這篇文章主要介紹了Java實(shí)現(xiàn)多文件壓縮加密并重命名壓縮文件對(duì)象的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • Spring Boot Jar 包部署腳本的實(shí)例講解

    Spring Boot Jar 包部署腳本的實(shí)例講解

    在本篇文章里小編給大家整理的是一篇關(guān)于Spring Boot Jar 包部署腳本的實(shí)例講解內(nèi)容,對(duì)此有興趣的朋友們可以跟著學(xué)習(xí)下。
    2021-12-12
  • SpringBoot常用注解@RestControllerAdvice詳解

    SpringBoot常用注解@RestControllerAdvice詳解

    這篇文章主要介紹了SpringBoot常用注解@RestControllerAdvice詳解,@RestControllerAdvice是一個(gè)組合注解,由@ControllerAdvice、@ResponseBody組成,而@ControllerAdvice繼承了@Component,因此@RestControllerAdvice本質(zhì)上是個(gè)Component,需要的朋友可以參考下
    2024-01-01
  • 詳解關(guān)于mybatis-plus中Service和Mapper的分析

    詳解關(guān)于mybatis-plus中Service和Mapper的分析

    這篇文章主要介紹了詳解關(guān)于mybatis-plus中Service和Mapper的分析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 詳解JAVA生成將圖片存入數(shù)據(jù)庫的sql語句實(shí)現(xiàn)方法

    詳解JAVA生成將圖片存入數(shù)據(jù)庫的sql語句實(shí)現(xiàn)方法

    這篇文章主要介紹了詳解JAVA生成將圖片存入數(shù)據(jù)庫的sql語句實(shí)現(xiàn)方法的相關(guān)資料,這里就是實(shí)現(xiàn)java生成圖片并存入數(shù)據(jù)庫的實(shí)例,需要的朋友可以參考下
    2017-08-08

最新評(píng)論

兴海县| 东辽县| 新兴县| 武强县| 碌曲县| 南陵县| 巴楚县| 佛山市| 泾川县| 杭锦后旗| 攀枝花市| 杭州市| 葵青区| 炉霍县| 普宁市| 柞水县| 基隆市| 鲜城| 鸡西市| 共和县| 景东| 巴塘县| 伊川县| 丹巴县| 柘荣县| 石门县| 昔阳县| 丹江口市| 房产| 临潭县| 九江市| 沙湾县| 洛隆县| 商都县| 娄烦县| 甘肃省| 温泉县| 临清市| 治多县| 杭州市| 巍山|