2017-02-15 24 views
2

У меня есть Tab с некоторым контентом: ScrollBar и другие.JavaFX TabPane отключить переключение вкладок клавишами

ScrollBar имеет обработчик событий для ключей: оставили и право.

Но если я нажимаю эти кнопки, то переключаются Tabs, потому что TabPane также имеет обработчик ключа.

Как отключить обработчик событий по умолчанию для 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 сфокусирован, ключевые события обрабатываются.

 Смежные вопросы

  • Нет связанных вопросов^_^