当前位置: 首页 > 知识库问答 >
问题:

javafx键盘事件快捷键

丌官运诚
2023-03-14

我的代码如下

getApplication().getScene().setOnKeyPressed(new EventHandler<KeyEvent>() {

        public void handle(KeyEvent ke) {
            if (ke.getCode() == KeyCode.ESCAPE) {
                System.out.println("Key Pressed: " + ke.getCode());
            }
        }
    });

共有1个答案

哈和惬
2023-03-14

事件从场景传递到聚焦节点(事件捕获),然后返回场景(事件冒泡)。事件过滤器在事件捕获过程中触发,而onKeyPressed和事件处理程序在事件冒泡过程中触发。某些控件(例如TextField)使用事件,因此它永远不会回到场景中,即取消事件冒泡,场景的onKeyPressed不起作用。

若要获取所有按下键的事件,请使用addEventFilter方法:

scene.addEventFilter(KeyEvent.KEY_PRESSED, new EventHandler<KeyEvent>() {
    public void handle(KeyEvent ke) {
        if (ke.getCode() == KeyCode.ESCAPE) {
            System.out.println("Key Pressed: " + ke.getCode());
            ke.consume(); // <-- stops passing the event to next node
        }
    }
});

如果要捕获组合键,请使用KeyCodeCombination类:

scene.addEventFilter(KeyEvent.KEY_PRESSED, new EventHandler<KeyEvent>() {
    final KeyCombination keyComb = new KeyCodeCombination(KeyCode.ESCAPE,
                                                          KeyCombination.CONTROL_DOWN);
    public void handle(KeyEvent ke) {
        if (keyComb.match(ke)) {
            System.out.println("Key Pressed: " + keyComb);
            ke.consume(); // <-- stops passing the event to next node
        }
    }
});

还可以通过设置快捷键向菜单添加快捷方式(参见[2])。

    null
 类似资料:
  • 我的代码是: 在上面的代码中,mBooleanLoginDone是一个布尔变量,指示用户是否登录。我希望快捷键Ctrl和T仅在用户成功登录时起作用,但现在我还没有登录,快捷键也起作用。我怎样才能解决它?有什么想法吗?

  • 主要内容:Windows 和 Mac 的键盘快捷键,基本的快捷键,文本编辑,Web 浏览器,屏幕截图通过使用键盘快捷键可以节省时间。 Windows 和 Mac 的键盘快捷键 在现代操作系统中和计算机软件程序中,键盘快捷键经常被使用。 使用键盘快捷键能帮您节省很多时间。 基本的快捷键 描述 Windows Mac OS 编辑菜单 Alt + E Ctrl + F2 + F 文件菜单 Alt + F Ctrl + F2 + E 视图菜单 Alt + V Ctrl + F2 + V 全选文本 Ctr

  • 配置本地和全局键盘快捷键 本地快捷键 您可以使用Menu模块来配置仅在应用程序集中时才触发的键盘快捷键。为此,在创建MenuItem时务必指定[`accelerator]属性。 1 const {Menu, MenuItem} = require('electron') 2 const menu = new Menu() 3 ​ 4 menu.append(new MenuItem({ 5 lab

  • 配置本地和全局键盘快捷键 Keyboard Shortcuts Configure local and global keyboard shortcuts 本地快捷键 您可以使用 [Menu] 模块来配置快捷键,只有在 app 处于焦点状态时才可以触发快捷键。 为此,在创建 MenuItem时必须指定一个 [accelerator] 属性。 const { Menu, MenuItem } = r

  • 键盘快捷键 控制台配备了一套非常方便的键盘快捷键,使其工作效率更高。下面是一段概述: 一般编辑 Ctrl/Cmd + I 当前请求自动缩进。 Ctrl + Space 打开自动补全 (即使没有打字也可以)。 Ctrl/Cmd + Enter 提交请求。 Ctrl/Cmd + Up/Down 跳转到上一个/下一个请求的开始或结束。 Ctrl/Cmd + Alt + L 折叠或展开当前代码块。 Ctr

  • 概览 该功能允许你为 Electron 应用程序配置应用和全局键盘快捷键。 示例 本地快捷键 应用键盘快捷键仅在应用程序被聚焦时触发。 为了配置本地快捷键,你需要在创建Menu模块中的MenuItem时指定accelerator属性。 Starting with a working application from the Quick Start Guide, update the main.js