2016-09-21 8 views
1

ビデオプレーヤーを構築しようとしています。それで私はのCtrlLEFTRIGHTというキーを使ってメディアを探したいと思っています。KeyCodeCombination Control + JavaFXのLEFTキーまたはCtrl + Rキー

私は2つの方法で試してみました:

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

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

他のキーの組み合わせは、働いていたが、これらはしませんでした。

私はそれを実装する方法はありますか?

答えて

1

最初はプラットフォームに依存しないため、CONTROL_DOWNではなくSHORTCUT_DOWNを使用できます。

このイベントでホストプラットフォームの共通ショートカット修飾子が であるかどうかを返します。この共通のショートカット修飾子は、ホストプラットフォームのショートカットで一般的に使用される修飾キー です。 Windowsの場合は 、Macの場合はmeta(コマンドキー)の制御例です。

次に、あなたのようないくつかの機会があります。

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

は、ここでは、IS- '場合(keyCombinationControlRight.match(E)||新しいKeyCodeCombination(KeyCode.RIGHT、KeyCombination.SHORTCUT_DOWN).match(E)){ \t \t \t \t System.err.println(" CTRL + RIGHT "); \t \t \t \t mediaPlayer.seek(newDuration(mediaPlayer.getCurrentTime()。toMillis()+ longSeekTime.toMillis())); \t \t \t} 他\t \t \t IF(keyCombinationControlLeft.match(E)||新しいKeyCodeCombination(KeyCode.LEFT、KeyCombination.SHORTCUT_DOWN).match(E)) \t \t \t { \t \t \t \tをSystem.err .println( "CTRL + LEFT"); \t \t \t \t mediaPlayer.seek(newDuration(mediaPlayer.getCurrentTime()。toMillis() - longSeekTime.toMillis())); \t \t \t –

関連する問題