2012-05-03 5 views
3

JFX 2でKeyBindingsを使用するには?私は自分自身の関数に戻っcarrigeから、Enterキーを再割り当てする必要がある、とCTRL +がJavaFX 2のKeyBindings

をENTER割り当てる返すcarrigeのために、私はこの方法を試してみたが、それでもそれは新しいラインを作ります。

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

答えて

6

あなたはフィルタリングされているイベントのデフォルト動作を防ぐためにしたい場合、あなたはそれをconsumeする必要があります。

KeyEventsにはさまざまな種類がありますが、KeyEvent.KEY_PRESSEDの代わりにKeyEvent.ANYにフィルタして、すべてを消費することができます。

+0

thanx、ジョブを消費しました。 – 4lex1v

9

jewelseaの回答に加えて。キーの組み合わせを制御するには、

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

ハンドラーを使用します。