2017-09-11 49 views
1

我想弄清楚如何獲取和更新JavaFX中一組動態創建的餅圖中的現有數據。這些餅圖全部保存在ArrayList中。首要任務是弄清楚如何獲得這些數據。如何從動態生成的JavaFX PieChart獲取數據?

,因爲我動態地從一組流體數據源創建這些餅圖,我不能讓使用類似代碼的多個觀察到的名單如下:

private ObservableList<PieChart.Data> dataList = FXCollections.observableArrayList(); 

任何想法如何,我可以讀取數據名稱以及來自每個動態生成的餅圖切片的值?

+1

歡迎來到堆棧溢出 - 很高興有你。請閱讀[我如何問一個好問題](https://stackoverflow.com/help/how-to-ask)?尤其是[如何創建一個最小,完整和可驗證的示例](https://stackoverflow.com/help/mcve),幫助將Stack Overflow的內容保持在最高水平,並增加獲得正確答案的機會。 –

+0

爲什麼不爲每個圖表修改一個'ObservableList'? – trashgod

+0

如果圖表的數量是固定的,那麼這將是一個想法,但實際的圖表數量可能會因信息量而異。還是你建議動態鏈接一個observablelist到每個圖表?我不確定如何在飛行中完成。 – vachina

回答

1

PieChart(查看)通過其data屬性可以訪問它自己的ObservableList<PieChart.Data>(模型)。給定一個List<PieChart>命名爲list,你可以遍歷列表,並檢查或必要更新每個圖表的數據:

list.get(0).getData().get(0).setPieValue(42); 
for (PieChart p : list) { 
    for (PieChart.Data data : p.getData()) { 
     System.out.println(data); 
    } 
} 

控制檯(從Ensemble8數據PieChartApp):

Data[Sun,42.0] 
Data[IBM,12.0] 
Data[HP,25.0] 
Data[Dell,22.0] 
Data[Apple,30.0] 

作爲替代具有列表的意見,List<PieChart>,考慮保持一個模型列表,List<ObservableList<PieChart.Data>>

+0

那真的很有用答案謝謝! – vachina