2017-03-26 11 views
0

JavaFXボタンのアクションをキーボードのキーにバインドしたい。キーボードとjavafx GUI(setOnKeyPressed)との関係

enter image description here

私は、次の機能が欲しい:

  • 私は1をクリックすると、「一つのファイルを選択」のアクションが
  • 私は9をクリックし、「マルチ選択のためのアクションをトリガーする必要がありますがファイル "がトリガーする必要があります
  • Enterをクリックすると、「OK」ボタンのアクションがトリガーされます
  • 「キャンセル」ボタンのアクションは、トリガー
+0

ただ1つのボタンを使用するのではなく、より良い方法は、キーの組み合わせ、つまりprを使用することですボタンの動作をトリガーするALT + KEYこれはニーモニックまたはアクセラレータを追加してプロセスを容易にするのにも役立ちます。 – ItachiUchiha

+0

私の目的は小さなキーボードを作成することで、キーボードのすべてのキーを呼び出す方法が必要です。AボタンをクリックするとtextArea Aに表示され、ボタンをクリックするとtextArea aに表示されます他のすべてのキーについては – Sona

+0

私はあなたのコメントを理解していません。ボタンが押されたときにTextAreaにテキストを表示するか、ボタンを放ちたいかしますか? – ItachiUchiha

答えて

1

藤堂このお持ちしたい場合は、それが一つのキーが押されたときにのみトリガーされているあなたはEventFilters

を使用することができます。

addEventFilter(KeyEvent.KEY_PRESSED, event -> 
{ 
    if(event.getCode().equals(KeyCode.DIGIT1)) 
    { 
     System.out.println("1 Pressed"); 

     //Then either call the method directly 
     selectOneFile(); 

     //Or fire the button 
     selectOneFileBtn.fire(); 
    } 
}); 

しかし@ItachiUchiha(およびI)としてお勧めします、あなたは

addEventFilter(KeyEvent.KEY_PRESSED, event -> 
{ 
    if(event.isAltDown() && event.getCode().equals(KeyCode.DIGIT1)) 
    { 
     System.out.println("Alt + 1 Pressed"); 

     //Then again, either call the method directly 
     selectOneFile(); 

     //Or fire the button 
     selectOneFileBtn.fire(); 
    } 
});