2015-05-28 26 views
1

我在玩JavaFX,想要添加一個工具提示,當鼠標懸停在節點上時彈出數據值。我發現了幾個鏈接和答案,其中描述了用CSS做的方法,或者使用Tooltip.install(node, tooltip),雖然我可以得到一個虛擬示例的工具提示,但我仍然對圖表沒有好運,使用如下代碼:我的JavaFX工具提示沒有顯示在圖表數據節點上

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 

回答

3

經過一番挖掘,這裏的問題是數據元素(XYChart.Data)沒有在構建時創建的節點。 chart.setData(data)將填充節點字段 - 我相信這是爲了允許用戶創建和設置自己的節點,如果需要的話。因此d1.getNode()實際上返回null,並且Tooltip.install()默默地失敗。

移動Tooltip.install致電chart.setData解決了這個問題。