2013-07-24 48 views
1

後搜索了JavaFx上StackedBarChart的頂部上添加文本標籤

  • 我發現這個樣品how to display bar value on top of bar javafx,但是,當杆在類別軸上分開,從而每個category data has a single bar和監聽器可以被添加到該數據(類別)。

  • 但與StackedBarChart每個類別由StackedBar組成。

  • 我嘗試code simple基於@jewelsea代碼。

  • 如果所有系列都是對稱的並且包含所有類別,則該解決方案可以正常工作。 symmetric Series

  • 與非對稱系列

    ObservableList<StackedBarChart.Series> barChartData = FXCollections.observableArrayList(
         new StackedBarChart.Series("Region 1", FXCollections.observableArrayList(
         new StackedBarChart.Data(years[0], 567d), 
         new StackedBarChart.Data(years[1], 1292d), 
         new StackedBarChart.Data(years[2], 1292d))), 
         new StackedBarChart.Series("Region 2", FXCollections.observableArrayList(
         new StackedBarChart.Data(years[0], 956), 
         new StackedBarChart.Data(years[1], 1665), 
         new StackedBarChart.Data(years[2], 2559))), 
         new StackedBarChart.Series("Region 3", FXCollections.observableArrayList(
         new StackedBarChart.Data(years[0], 1154), 
         //new StackedBarChart.Data(years[1], 1927),// series names Region 3(which is the last series on the chart data) doesn't exist category years[1] "2008". 
         new StackedBarChart.Data(years[2], 2774)))); 
    
  • 我們將錯過2008年類的頂部的文本。 non-symmetric series miss text on the missing categories

  • 任何幫助,歡迎。

+0

@jewelsea這個我的解決方案。 –

+0

你是否曾經更新過酒吧上的數據和酒吧值?或者至少刪除酒吧上的酒吧值 – HJerem

+0

@JérémyHalin請檢查此代碼。 [gist](https://gist.github.com/KhaledLela) –

回答

0

它缺少的,因爲你把它註釋掉:

//new StackedBarChart.Data(years[1], 1927),// series names Region 3(which is the last series on the chart data) doesn't exist category years[1] "2008". 

這第二個參數是 「1927年」 的稱號。這在技術上是Y軸參數。爲了顯示「1927」,您需要保留該行。退房的API:

http://docs.oracle.com/javafx/2/api/javafx/scene/chart/StackedBarChart.html

你可能需要把你的「標題」了另一種方式。使用文本類並將其添加到StackedBarChart.Series對象的頂部。

+0

我完全想要評論該行,因爲最後一個系列的案例並未包含所有內容類別。 –

+0

在新的StackedBarChart.Data(years [1],1665)部分嘗試setLegendVisible()? –

+0

我從這裏得到了方法(StackedBarChart使用數據和系列):http://docs.oracle.com/javafx/2/api/javafx/scene/chart/Chart.html#setLegendVisible%28boolean%29 –