java - 如何使图表焦点中的节点可遍历?

标签 java javafx javafx-8

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

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

enter image description here

当我尝试设置 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/

相关文章:

java - java中继承的缺点

JavaFx Group 内容位置在转换后发生变化

css - JavaFX CSS 根属性引用未解析

java - 当文本字段聚焦时,Windows 平板电脑触摸键盘不会弹出

java - 在android中加载和保存数据文件

java - 为什么我们必须声明对 JBOSS 8 (wildfly) list 的依赖?

java - 更新 Jtable 值到 MySql 表

从 Java 9 开始,javassist.NotFoundException

javafx-2 - Kotlin 中的 TableView 回调

TableView,设置可编辑单元格