Java 为什么我不能从控制器中的.fxml修改图表?

Java 为什么我不能从控制器中的.fxml修改图表?,java,javafx,Java,Javafx,我在.fxml文件中定义了一个条形图,并使用@fxml注释将其注入控制器。但是,当我插入数据系列时,图表在我的应用程序中仍然显示为空,即使调试器输出确认我已成功地将数据系列插入图表中。我是否需要告诉图表的视图以某种方式进行更新 我当然可以通过从fxml中获取一个窗格来解决这个问题,然后在其中插入确实有效的图表,我在过去使用过这种解决方法。但我很好奇我做错了什么 谢谢你的帮助 控制器代码: @FXML private BarChart<Number,String> barChart;

我在.fxml文件中定义了一个条形图,并使用@fxml注释将其注入控制器。但是,当我插入数据系列时,图表在我的应用程序中仍然显示为空,即使调试器输出确认我已成功地将数据系列插入图表中。我是否需要告诉图表的视图以某种方式进行更新

我当然可以通过从fxml中获取一个窗格来解决这个问题,然后在其中插入确实有效的图表,我在过去使用过这种解决方法。但我很好奇我做错了什么

谢谢你的帮助

控制器代码:

@FXML private BarChart<Number,String> barChart;

//...

    barChart.getData().add( new XYChart.Series<Number,String>("blabla",

        eventService
            .getTopTen(EventType.MUSICAL)
            .entrySet()
            .stream()
            .map(entry -> new XYChart.Data<>((Number)entry.getValue(),entry.getKey().getName(),entry))
            .collect(Collectors.collectingAndThen(toList(), FXCollections::observableArrayList))
    ));
我的FXML:

//...

<AnchorPane prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/10.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="at.ac.tuwien.inso.sepm.ticketline.client.gui.event.EventTopTenController">
   <children>
      <Button layoutX="267.0" layoutY="361.0" mnemonicParsing="false" onAction="#MusicalTopTenButtonHandler" text="Literature" />
      <BarChart fx:id="barChart" layoutX="52.0" layoutY="14.0" prefHeight="338.0" prefWidth="510.0">
        <xAxis>
          <NumberAxis side="BOTTOM" />
        </xAxis>
        <yAxis>
          <CategoryAxis side="LEFT" />
        </yAxis>
      </BarChart>
   </children>

您可以使用highcharts库而不是此库。它支持json格式,可以简化您的问题。

我已经解决了。我两次错误地将fxml加载到我的程序中。在控制器中调用该方法后,其中一个节点已更新,另一个未更新。我只是在看那个不是的。无论如何谢谢你

请将您的问题提供一个演示该问题的示例。