zoukankan      html  css  js  c++  java
  • JavaFx全局快捷键实现(Kotlin)

    原文地址: JavaFx全局快捷键实现(Kotlin) | Stars-One的杂货小窝

    最近整款工具需要用到全局快捷键,搜集了下网上的资料,发现有个JIntellitype库可以用来实现全局快捷键,下面记录下个人的使用

    JIntellitype只适用windows的全局快捷键绑定,并不能全平台支持!!

    注:本文使用的Kotlin,Java版的可以参考下JIntellitype的文档,

    PS:后面我还发现有个jnativehook的库,在github上的⭐还挺多的,文档介绍其支持全平台的

    然后使用文档啥也没有,参考的示例整了些没能成功就放弃了,其例子也是给的swing,而不是javafx,我自己摸索了半天还报错,就放弃了

    使用

    吐槽下,这个作者写的文档使用说明其实有点不是太明确,第一遍看过去人都懵的...

    而且看网上的资料,都是自己去拷贝jar包,实际上作者已经把jar包发布在maven中央仓库了,根本没有必要手动去下载

    JIntellitype此库好像支持JDK8和JDK9

    1.导入依赖

    <dependency>
        <groupId>com.melloware</groupId>
        <artifactId>jintellitype</artifactId>
        <version>1.4.0</version>
    </dependency>
    

    2.注册按键

    我们以全局注册个Ctrl+Shift+G的快捷键为例

    //这里必须是大写字母
    val keyCode = 'G'.toInt() //这个其实是ASCII码(G的ASCII码数值为71)
    
    //注意这个1,下面第三步的回调函数会根据这个来进行判断
    JIntellitype.getInstance().registerHotKey(1, JIntellitype.MOD_CONTROL + JIntellitype.MOD_SHIFT, keyCode)
    
    • JIntellitype.MOD_CONTROL Ctrl键
    • JIntellitype.JIntellitype.MOD_SHIFT Shift键
    • JIntellitype.MOD_ALT Alt键
    • JIntellitype.MOD_WIN Windows键

    3.注册按键监听器

    JIntellitype.getInstance().addHotKeyListener {
        if (it == 1) {
            //写上触发快捷键后的处理逻辑
            println("已按下快捷键")
        }
    }
    

    注意,addHotKeyListener中回调函数会返回一个数字,这个数字是用来区分不同的快捷键的,是在上面注册按键的步骤中定义的

    PS:如果想取消注册,使用unregisterHotKey()方法即可,如下面所示

    //1就是上面注册用的
    JIntellitype.getInstance().unregisterHotKey(1)
    

    4.下载dll文件

    点击dll文件下载

    上面我把32位和64位的dll文件都打包上传到蓝奏云了,各位需要自取

    下载下来后需要把文件放在指定路径中,如下图所示

    测试

    随便在一个地方,按下设置好的快捷键就会成功触发


    提问之前,请先看提问须知 点击右侧图标发起提问 联系我 或者加入QQ群一起学习 Stars-One安卓学习交流群 TornadoFx学习交流群:1071184701
  • 相关阅读:
    Java类的静态块の二
    Java类的静态块の一
    Eclipse优化工具Optimizer for Eclipse
    C#实现MD5WITHRSA签名
    Ubuntu 初始化Root账户密码
    shell连接本机虚拟机
    Nodejs的Express完成安装指导
    node.js之Windows 系统下设置Nodejs NPM全局路径
    Unicode, UTF-8, GBK, ASCII的区别
    BootstrapValidation一些tips
  • 原文地址:https://www.cnblogs.com/stars-one/p/15364128.html
Copyright © 2011-2022 走看看