У меня есть несколько JFXTabPanes через приложение, и у них есть несколько вкладок ...
Они имеют внутри StackPanes
с несколькими узлами каждый. Что я хочу, так это отключить события клавиш со стрелками для JFXTabPanes
и разрешить их только для детей внутри вкладок.
Я хочу сделать это, потому что иногда, когда пользователь нажимает клавиши со стрелками внутри дочерних элементов стека, на JFXTabPane выбирается другая вкладка, которая раздражает.
Что я делаю до сих пор.
tabPane.addEventFilter(KeyEvent.ANY, event -> {
if (event.getCode().isArrowKey()) {
System.out.println("Is arrow key");
event.consume();
}
});
И у детей есть свои собственные ключевые слушатели событий, потому что они больше не работают после того, как я добавляю фильтр событий на tabPane: (
// -- KeyListeners
someChildrenInsideTabPane.setOnKeyReleased(key -> {
System.out.println("Key RELEASED");
if (key.getCode() == KeyCode.RIGHT)
nextSpectrumAnalyzer();
else if (key.getCode() == KeyCode.LEFT)
previousSpectrumAnalyzer();
});