2017-02-15 81 views
2

我有一个Tab与一些内容:ScrollBar和其他。JavaFX TabPane禁用制表符切换键

ScrollBar有按键事件处理程序:

但是,如果我按这些按钮,Tabs切换,因为TabPane也有一个密钥处理程序。

如何禁用TabPane的默认事件处理程序或更改切换策略?

回答

1

问题在于默认情况下ScrollBar不是focus traversable,并且仅针对焦点Node s才会触发关键事件。

您可以设置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集中,关键事件的处理。