JavaFX中的KeyBinding 2

4le*_*x1v 3 javafx event-handling

如何在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();
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)

Ulu*_*Biy 9

作为jewelsea的补充之一.要控制组合键,请使用:

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

在你的处理程序中


jew*_*sea 6

如果要阻止正在过滤的事件的默认行为,则需要使用它.

有很多种KeyEvent,您可能希望在KeyEvent.ANY上过滤而不是仅仅过滤KeyEvent.KEY_PRESSED它们并全部使用它们.