我有Tab
一些内容:ScrollBar
和其他内容。
ScrollBar
具有键的事件处理程序: left 和 right 。
但如果我按下这些按钮,Tabs
会被切换,因为TabPane
也有一个键处理程序。
如何禁用TabPane
的默认事件处理程序或更改切换策略?
答案 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
,都会处理关键事件。