我正在玩JavaFX,并希望在鼠标悬停在节点上时添加一个弹出数据值的工具提示。我找到了几个链接和答案,描述了CSS方法,或使用Tooltip.install(node, tooltip)
,虽然我可以得到一个工具提示工作的虚拟示例,我仍然没有运气图表,使用这样的代码:
LineChart<Number, Number> chart = new LineChart(xaxis, yaxis);
ObservableList<Data<Number, Number>> data = FXCollections.observableArrayList();
Data<Number, Number> d1 = new XYChart.Data<Number, Number>(5, 15);
Tooltip tooltip = new Tooltip("15");
Tooltip.install(d1.getNode(), tooltip);
data.add(d1);
Data<Number, Number> d2 = new XYChart.Data<Number, Number>(10, 25);
Tooltip tooltip2 = new Tooltip("25");
Tooltip.install(d2.getNode(), tooltip2);
data.add(d2);
chart.setData(data);
//add chart to scene etc etc etc
答案 0 :(得分:3)
经过一番挖掘,这里的问题是数据元素(XYChart.Data)没有在构造时创建的节点。 chart.setData(data)
将填充节点字段 - 我相信这是为了允许用户在需要时创建和设置自己的节点。所以d1.getNode()
实际上返回null,Tooltip.install()
默默地失败。
在 Tooltip.install
之后移动chart.setData
来电解决问题。