如何使图表中的节点可以遍历?

时间:2015-12-02 02:58:01

标签: java javafx javafx-8

我正在使用javafx-8和java8,尝试制作交互式图表。

到目前为止,我已经实现了所有鼠标操作(在鼠标悬停时突出显示,拖放以及更改值等),但我无法实现任何键盘交互(基本上用箭头键更改其值),因为图表中的节点(即下图)无法获得焦点。

enter image description here

当我尝试设置focusTraversable属性时失败,异常

java.lang.RuntimeException: StackPane.focusTraversable : A bound value cannot be set.

我尝试在图表上设置它,但它没有传播到数据点(节点)。有人可以指点我正确的方法吗?谢谢!

1 个答案:

答案 0 :(得分:1)

符号的focusTraversal绑定用于辅助功能 - 来自LineChart.createSymbol(..)的代码段:

symbol.focusTraversableProperty().bind(Platform.accessibilityActiveProperty());

只要您可以在没有遵循辅助功能限制的情况下生活,您可以在将其设置为true之前通过简单解除绑定来逃避(未经测试的副作用!),例如:

Node node = data.getNode();
node.focusTraversableProperty().unbind();
node.setFocusTraversable(true);