Java FX条形图未按预期工作

Java FX条形图未按预期工作,java,javafx,bar-chart,Java,Javafx,Bar Chart,我正在尝试创建一个基于的条形图,显示基于给定条件的值。不知怎的,这张图表的表现并不像我预期的那样。根据我点击的次数,它会不断增加条数。请看下图。有一个按钮事件会生成此图,并且条会随着我单击按钮的次数而增加 下面是我为更正代码所做的操作 XYChart.Series<String, Double> series1 = new XYChart.Series<>(); XYChart.Series<String, Double> series2 =

我正在尝试创建一个基于的条形图,显示基于给定条件的值。不知怎的,这张图表的表现并不像我预期的那样。根据我点击的次数,它会不断增加条数。请看下图。有一个按钮事件会生成此图,并且条会随着我单击按钮的次数而增加


下面是我为更正代码所做的操作

    XYChart.Series<String, Double> series1 = new XYChart.Series<>();
    XYChart.Series<String, Double> series2 = new XYChart.Series<>();
    XYChart.Series<String, Double> series3 = new XYChart.Series<>();
    XYChart.Series<String, Double> series4 = new XYChart.Series<>();

            xAxis.setLabel("Fuel Type");
            yAxis.setLabel("%");

            series1.getData()
                    .add(new XYChart.Data<String, Double>("Natural", Double.parseDouble(natural_gas.getText())));
            series2.getData().add(new XYChart.Data<String, Double>("Diesel", Double.parseDouble(diesel.getText())));
            series3.getData()
                    .add(new XYChart.Data<String, Double>("Light Fuel", Double.parseDouble(light_fuel_gas.getText())));
            series4.getData().add(new XYChart.Data<String, Double>("LPG", Double.parseDouble(lpg.getText())));

            bar_chart.getData().add(series1);
            bar_chart.getData().add(series2);
            bar_chart.getData().add(series3);
            bar_chart.getData().add(series4);

            bar_chart.setLegendVisible(false);

您似乎正在操作侦听器中设置操作侦听器。。。。取决于FXML文件中的内容。然后在该动作侦听器中,向条形图中的现有序列添加四个新序列。如果你解释一下你实际上想做什么,也许会有帮助,因为这似乎是预期的行为。我从方法签名中删除了ActionEvent。现在,我们的想法是在X轴上显示燃料类型,在Y轴上显示燃料值。我有四种类型的燃料。请让我知道如何执行这些操作。如果删除参数,则没有任何区别。它仍然是一个动作处理程序方法,不是吗?我不太清楚你想做什么。谢谢你的回复。正如我所说,这个想法是在xAxis上显示燃料类型,在yAxis上显示值。我有四种类型的燃料类型,我把它们添加到系列中,但不知怎么的,它不起作用。
    XYChart.Series<String, Double> series1 = new XYChart.Series<>();
    XYChart.Series<String, Double> series2 = new XYChart.Series<>();
    XYChart.Series<String, Double> series3 = new XYChart.Series<>();
    XYChart.Series<String, Double> series4 = new XYChart.Series<>();

            xAxis.setLabel("Fuel Type");
            yAxis.setLabel("%");

            series1.getData()
                    .add(new XYChart.Data<String, Double>("Natural", Double.parseDouble(natural_gas.getText())));
            series2.getData().add(new XYChart.Data<String, Double>("Diesel", Double.parseDouble(diesel.getText())));
            series3.getData()
                    .add(new XYChart.Data<String, Double>("Light Fuel", Double.parseDouble(light_fuel_gas.getText())));
            series4.getData().add(new XYChart.Data<String, Double>("LPG", Double.parseDouble(lpg.getText())));

            bar_chart.getData().add(series1);
            bar_chart.getData().add(series2);
            bar_chart.getData().add(series3);
            bar_chart.getData().add(series4);

            bar_chart.setLegendVisible(false);