2016-09-21 3 views
1

J'essaye de construire un lecteur vidéo. En ce que je veux chercher des médias en utilisant Ctrl et GAUCHE et RIGHT clé.KeyCodeCombination Control + touche GAUCHE ou Ctrl + DROITE dans JavaFX

J'ai essayé dans les deux sens:

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

et

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

D'autres combinaisons de touches ont travaillé, mais ceux-ci ne l'ont pas.

Y a-t-il un moyen de l'implémenter?

Répondre

1

Vous pouvez essayer d'utiliser SHORTCUT_DOWN plutôt que CONTROL_DOWN car le premier est indépendant de la plate-forme.

Renvoie si le modificateur de raccourci commun de la plate-forme hôte est sur cet événement. Ce modificateur de raccourci commun est une clé de modification qui est couramment utilisée dans les raccourcis sur la plate-forme hôte. C'est pour exemple de contrôle sur Windows et meta (touche de commande) sur Mac.

Ensuite, vous avez plusieurs possibilités comme:

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

ou

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

Oui je pourrais utiliser, mais je ne veux pas. Je veux spécifiquement utiliser 'Control + LEFT'. Vous pouvez voir sur VLC Player & KMPlayer utilisateur peut chercher des médias en utilisant cette combinaison de touches. Par ailleurs, pouvez-vous m'informer, lequel est la touche de raccourci? J'ai essayé d'utiliser votre combinaison de touches fournie, mais je n'ai pas pu l'implémenter. J'utilise le système d'exploitation Windows 8.1. –

+0

Le raccourci est la touche de contrôle sous Windows. Pourriez-vous poster ce que vous avez en ce moment? Ce serait beaucoup plus facile d'aider. – DVarga

+0

Ici, il iS 'if (keyCombinationControlRight.match (e) || nouveau KeyCodeCombination (KeyCode.RIGHT, KeyCombination.SHORTCUT_DOWN) .match (e)) { \t \t \t \t System.err.println (" CTRL + DROITE "); MediaPlayer.seek (nouvelle Durée (mediaPlayer.getCurrentTime(). ToMillis() + longSeekTime.toMillis()) \t \t \t \t \t \t \t} \t \t \t else if (keyCombinationControlLeft.match (e) || nouveau KeyCodeCombination (KeyCode.LEFT, KeyCombination.SHORTCUT_DOWN) .match (e)) \t \t \t { \t \t \t \t System.err .println ("CTRL + LEFT"); MediaPlayer.seek (nouvelle Durée (mediaPlayer.getCurrentTime(). ToMillis() - longSeekTime.toMillis()) \t \t \t \t \t \t \t} ' –