JavaFX中的KeyBinding 2

时间:2012-05-03 22:20:38

标签: event-handling javafx

如何在JFX 2中使用KeyBindings?我需要重新分配来自carrige的Enter键返回到我自己的函数,并且对于carrige返回指定CTRL + ENTER

我已经尝试过这种方式,但它仍然是一个新的界限。

messageArea.addEventFilter(KeyEvent.KEY_PRESSED, new EventHandler<KeyEvent>() {
        @Override
        public void handle(KeyEvent keyEvent) {
            if (keyEvent.getCode() == KeyCode.ENTER) {
                sendMessage();
            }
        }
    });

2 个答案:

答案 0 :(得分:9)

作为jewelsea答案的补充。要控制组合键,请使用:

if (event.getCode().equals(KeyCode.ENTER) && event.isControlDown()) { // CTRL + ENTER
    messageArea.setText(messageArea.getText() + "\n");
}

在您的处理程序中。

答案 1 :(得分:6)

如果想要阻止您要过滤的事件的默认行为,则需要consume它。

KeyEvents种类繁多,您可能希望过滤KeyEvent.ANY而非KeyEvent.KEY_PRESSED并全部使用它们。