2012-05-03 4 views
3

Как использовать KeyBindings в JFX 2? Мне нужно переназначить клавишу Enter из carrige, возвращаясь к моей собственной функции, и для возврата каретки назначить CTRL + ENTERKeyBindings в JavaFX 2

Я пробовал этот путь, но все же он создает новую линию.

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

ответ

6

Если хотите изменить поведение по умолчанию события вы фильтрации, необходимо consume его.

Существует множество видов KeyEvents, вы можете фильтровать на KeyEvent.ANY вместо KeyEvent.KEY_PRESSED и потреблять их все.

+0

thanx, метод потребления сделал эту работу. – 4lex1v

9

В дополнение к ответу на драгоценность. Для управления комбинациями клавиш используйте:

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

в вашем обработчике.