2016-09-21 2 views
1

Я пытаюсь создать видеоплеер. В этом я хочу искать носители, используя Ctrl и LEFT и RIGHT ключ.KeyCodeCombination Control + LEFT или Ctrl + RIGHT ключ в JavaFX

Я пытался в два пути:

KeyCombination.keyCombination("Ctrl+RIGHT").match(e); 

и

KeyCodeCombination(KeyCode.LEFT, KeyCombination.CONTROL_DOWN).match(e); 

Другие комбинации клавиш работали, но это не так.

Есть ли способ, который я могу реализовать?

ответ

1

Вы можете попытаться использовать SHORTCUT_DOWN, а не CONTROL_DOWN, поскольку первый из них независим от платформы.

Возвращает, является ли общий модификатор ярлыка хост-платформы ниже этого события. Этот общий ярлык-модификатор является ключом модификатора , который обычно используется в ярлыках на платформе хоста. Это для пример управления в Windows и мета (командный ключ) на Mac.

Тогда у вас есть несколько возможностей, таких как:

node.setOnKeyPressed(e -> { 
    if (new KeyCodeCombination(KeyCode.LEFT, KeyCombination.SHORTCUT_DOWN).match(e)) { 
     // ... 
    } 
}); 

или

node.setOnKeyPressed(e -> { 
    if (e.getCode() == KeyCode.LEFT && e.isShortcutDown()) { 
     // ... 
    } 
}); 
+0

Да я мог бы использовать, но я не хочу. Я специально хочу использовать «Control + LEFT». Вы можете видеть, что в VLC Player и KMPlayer пользователь может искать носитель, используя эту комбинацию клавиш. Кстати, можете ли вы сообщить мне, какая из них - клавиша быстрого доступа? Я попытался использовать вашу предоставленную комбинацию клавиш, но я не мог ее реализовать. Я использую операционную систему Windows 8.1. –

+0

Ярлык - это ключ управления в Windows. Не могли бы вы опубликовать то, что у вас есть на данный момент? Было бы намного легче помочь. – DVarga

+0

Здесь 'это- если (keyCombinationControlRight.match (е) || новый KeyCodeCombination (KeyCode.RIGHT, KeyCombination.SHORTCUT_DOWN) .match (е)) { \t \t \t \t System.err.println (" CTRL + ПРАВЫЙ «); \t \t \t \t mediaPlayer.seek (новый Duration (mediaPlayer.getCurrentTime(). ToMillis() + longSeekTime.toMillis())); \t \t \t} \t \t \t иначе, если (keyCombinationControlLeft.match (е) || новый KeyCodeCombination (KeyCode.LEFT, KeyCombination.SHORTCUT_DOWN) .match (е)) \t \t \t { \t \t \t \t System.err .println ("CTRL + ЛЕВЫЙ"); \t \t \t \t mediaPlayer.seek (новый Duration (mediaPlayer.getCurrentTime(). ToMillis() - longSeekTime.toMillis())); \t \t \t} ' –

Смежные вопросы