我正在使用javafx-8和java8,尝试制作交互式图表。
到目前为止,我已经实现了所有鼠标操作(在鼠标悬停时突出显示,拖放以及更改值等),但我无法实现任何键盘交互(基本上用箭头键更改其值),因为图表中的节点(即下图)无法获得焦点。
当我尝试设置focusTraversable属性时失败,异常
java.lang.RuntimeException: StackPane.focusTraversable : A bound value cannot be set.
我尝试在图表上设置它,但它没有传播到数据点(节点)。有人可以指点我正确的方法吗?谢谢!
答案 0 :(得分:1)
符号的focusTraversal绑定用于辅助功能 - 来自LineChart.createSymbol(..)
的代码段:
symbol.focusTraversableProperty().bind(Platform.accessibilityActiveProperty());
只要您可以在没有遵循辅助功能限制的情况下生活,您可以在将其设置为true之前通过简单解除绑定来逃避(未经测试的副作用!),例如:
Node node = data.getNode();
node.focusTraversableProperty().unbind();
node.setFocusTraversable(true);