2013-07-24 3 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

Попробуйте setLegendVisible() на новой StackedBarChart.Data (годы [1], 1665) часть? –

+0

Я получил метод отсюда (StackedBarChart использует как данные, так и серию): http://docs.oracle.com/javafx/2/api/javafx/scene/chart/Chart.html#setLegendVisible%28boolean%29 –

Смежные вопросы