我正在使用 javafx-8 和 java8,试图制作交互式图表。
到目前为止,我已经实现了所有鼠标操作(鼠标悬停时突出显示、拖放以更改值等),但我无法实现任何键盘交互(基本上是使用箭头键更改其值),因为节点 (即下图)在图表中无法获得焦点。
当我尝试设置 focusTraversable 属性失败并出现异常时
java.lang.RuntimeException: StackPane.focusTraversable : A bound value cannot be set.
我已经尝试在图表上设置它,但它没有传播到数据点(节点)。有人可以指出我正确的方法吗?谢谢!
最佳答案
符号的 focusTraversal 的绑定(bind)用于可访问性 - 来自 LineChart.createSymbol(..)
的片段:
symbol.focusTraversableProperty().bind(Platform.accessibilityActiveProperty());
只要您可以在不遵循可访问性限制的情况下生活,您就可以通过在将其设置为 true 之前简单地取消绑定(bind)来逃脱(未经测试的副作用!),例如:
Node node = data.getNode();
node.focusTraversableProperty().unbind();
node.setFocusTraversable(true);
关于java - 如何使图表焦点中的节点可遍历?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34034118/