JavaFX按键监听器用于多个按键按下的实现?

标签 java javafx

我想创建一个事件处理程序来监听多个组合键,例如同时按住 CtrlC

为什么像 if((... == Control) && (... == C)) 这样的东西不起作用?

这是我尝试使用的代码:

textField.addEventHandler(KeyEvent.KEY_PRESSED, new EventHandler<KeyEvent>() {
    public void handle(KeyEvent event) {
        if ((event.getCode() == KeyCode.CONTROL) && (event.getCode() == KeyCode.C)) {
            System.out.println("Control pressed");
        } 
    };
});

最佳答案

您可以尝试这个解决方案,它对我有用!

final KeyCombination keyCombinationShiftC = new KeyCodeCombination(
KeyCode.C, KeyCombination.CONTROL_DOWN);

textField.setOnKeyPressed(new EventHandler<KeyEvent>() {
    @Override
    public void handle(KeyEvent event) {
        if (keyCombinationShiftC.match(event)) {
            logger.info("CTRL + C Pressed");
        }
    }
});

关于JavaFX按键监听器用于多个按键按下的实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19944270/

相关文章:

JavaFX,外部类扩展 Pane ,将其添加到主类将不起作用

java - 使用 Java google apps 目录 API 获取特定电子邮件 ID 的组时出错

java - 在运行时集成外部 JSF View

java - 使用 JavaFX 8 创建 null-safe BooleanBinding

java - 使用观察者模式保持 TableView 更新

java - TestFX中有测试选择框选择的功能吗?

JavaFX 与 Junit

java - 在数字之前用字母对 Java ArrayList 进行排序

java - 在 Java 应用程序中执行 "sp_msforeachdb"

JAVA当r或s为负数时如何验证ECDSA签名