JavaFX Отключить клавиши со стрелками для TabPane, но не дочерние внутри вкладок - PullRequest
0 голосов
/ 11 ноября 2018

У меня есть несколько 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();        
});       
...