JavaFX TabPane 如何通过禁用键盘切换选项卡?

3
我有一个包含一些内容的TabScrollBar和其他内容。 ScrollBar有左右箭头的事件处理程序:leftright
但是,如果我按下这些按钮,会切换Tabs,因为TabPane也有一个键处理程序。
如何禁用TabPane的默认事件处理程序或更改切换策略?
1个回答

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 上,键盘事件就会被处理。

但是我们如何完全禁用TabPane的左右箭头。 - GOXR3PLUS

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接