JavaFX TabPane禁用按键切换选项卡

时间:2017-02-15 18:07:17

标签: java javafx keylistener eventhandler

我有Tab一些内容:ScrollBar和其他内容。

ScrollBar具有键的事件处理程序: left right

但如果我按下这些按钮,Tabs会被切换,因为TabPane也有一个键处理程序。

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

1 个答案:

答案 0 :(得分: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,都会处理关键事件。