JavaFX BarChart xAxis标记错误的定位

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaFX BarChart xAxis标记错误的定位相关的知识,希望对你有一定的参考价值。

我的窗口有以下控制器:

package window;

import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.chart.BarChart;
import javafx.scene.chart.CategoryAxis;
import javafx.scene.chart.NumberAxis;
import javafx.scene.chart.XYChart;

import java.util.Map;
import java.util.SortedMap;

public class StatisticsController {

    @FXML
    private BarChart<?, ?> barChartHistogram;

    private SortedMap<String, Integer> _points;

    @FXML
    private CategoryAxis xAxis;
    @FXML
    private NumberAxis yAxis;

    public void onLoad(SortedMap<String, Integer> points) {
        xAxis.setLabel("Numer indeksu");
        yAxis.setLabel("Ilość punktów");
        //barChartHistogram.setBarGap(0);
        XYChart.Series series1 = new XYChart.Series();
        int a = 10;
        series1.getData().add(new XYChart.Data("Tom", 10));
        series1.getData().add(new XYChart.Data("Andrew", 7));
        series1.getData().add(new XYChart.Data("Patrick", 5));


        /*for (Map.Entry<String, Integer> p: points.entrySet()) {
            series1.getData().add(new XYChart.Data<>(Integer.toString(a), p.getValue()));
            a += 10;
        }*/
        barChartHistogram.getData().addAll(series1);
        _points = points;
    }

}

此窗口的.fxml文件:

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.chart.BarChart?>
<?import javafx.scene.chart.CategoryAxis?>
<?import javafx.scene.chart.NumberAxis?>
<?import javafx.scene.layout.AnchorPane?>

<AnchorPane prefHeight="700.0" prefWidth="1000.0" xmlns="http://javafx.com/javafx/9.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="window.StatisticsController">
   <children>
      <BarChart fx:id="barChartHistogram" layoutX="12.0" layoutY="14.0" prefHeight="372.0" prefWidth="1500.0">
        <xAxis>
          <CategoryAxis side="BOTTOM" fx:id="xAxis" />
        </xAxis>
        <yAxis>
          <NumberAxis fx:id="yAxis" side="LEFT" />
        </yAxis>
      </BarChart>
   </children>
</AnchorPane>

除了一件事,一切都很完美:

enter image description here

你可以看到x轴标签工作正常,但x轴标签(我的意思是像列名),应该是TomAndrewPatrick放在完全相同的位置(通过这个混乱,你实际上可以读取Patrick)a x轴的0位置。问题出在哪儿?我应该对UI进行一些更改吗?

以上是关于JavaFX BarChart xAxis标记错误的定位的主要内容,如果未能解决你的问题,请参考以下文章

valueformatter / getFormattedValue IndexOutOfBoundsException:索引:7,大小:7 MpAndroidChart in Barchart

Echarts - barChart - Vue组件模板样式

plotly 将我的 xaxis 标记为错误。如何解决这个问题?

显示图表控件 Xaxis 中的所有值

Angular Karma - 无法绑定到“数据”,因为它不是“ngx-item-category-barchart”的已知属性

MathML 标记无法在 JavaFX WebView 中正确呈现