2017-02-15 25 views
2

Tabには、ScrollBarなどがあります。JavaFX TabPane無効化タブによるキー切り替え

ScrollBarは、キーのイベントハンドラを持っている:を左と右の

しかし、TabPaneにもキーハンドラがあるので、これらのボタンを押すとTabsが切り替わります。

TabPaneのデフォルトイベントハンドラを無効にする方法、または切り替えポリシーを変更する方法はありますか。

答えて

1

問題はScrollBarがデフォルトでfocus traversableではなく、キーイベントがフォーカスされたNodeにのみ発生することです。

あなたはScrollBarフォーカス一筆設定することができます。この場合

sb.setFocusTraversable(true); 

sb.setOnKeyPressed(e -> { 
    if (e.getCode().equals(KeyCode.RIGHT)) 
     sb.setValue(sb.getValue()+0.01); 
    else if(e.getCode().equals(KeyCode.LEFT)) 
     sb.setValue(sb.getValue()-0.01); 
}); 

ScrollBarがフォーカスされるたびに、キーイベントが処理されます。

関連する問題