JavaFX,尝试将折线图数据系列动态传递给控制器​​时出现问题

我一直在研究JavaFX问题。我有一个简单的程序,该程序包含基于TreeView更改SubScenes的主场景。子场景之一包括折线图。我的意图是,在启动程序后,它将在后台进行一些计算,并将XYChart.Series传递给折线图。但是,我无法使数据显示在图表上。代码如下:

我的启动函数(除启动(参数)之外,主函数为空):

public void start(Stage primaryStage) throws Exception{

    //Create main Scene
    FXMLLoader loader = new FXMLLoader();
    loader.setLocation(getclass().getResource("/PrimaryStage.fxml"));
    Parent root = loader.load();
    primaryStage.setTitle("Radial Turbine Design Suite");
    primaryStage.setScene(new Scene(root,1280,720));
    primaryStage.show();

    //Run calculations and create XYChart.Series
    PrelimSizingTurbine run1 = new PrelimSizingTurbine();
    run1.prelimSizingTurbine();
    XYChart.Series<Double,Double> prelimDataSeriesHub = run1.createSeries(run1.rotorHubContour,"Rotor Hub");

    //access the SubScene with the LineChart and plot the series
    FXMLLoader newLoader = new FXMLLoader();
    newLoader.setLocation(getclass().getResource("/PreliminaryTurbinesizing_Geometry.fxml"));
    Parent root2 = newLoader.load();
    PreliminaryTurbinesizing_GeometryController controller = newLoader.getcontroller();
    controller.preliminaryTurbineGeometry.getData().add(prelimDataSeriesHub);

}

createSeries方法:

    public XYChart.Series<Double,Double> createSeries(Double[][] coords,String seriesname){
        XYChart.Series<Double,Double> series = new XYChart.Series<>();
        series.setName(seriesname);

        for(int i = 0; i < coords.length; i++){
            series.getData().add(new XYChart.Data(coords[i][0],coords[i][1]));
        }

        return series;
    }

然后使用LineChart的子场景控制器:

public class PreliminaryTurbinesizing_GeometryController implements Initializable {

    @FXML
    public LineChart<Double,Double> preliminaryTurbineGeometry;

    @FXML
    public NumberAxis xAxis;

    @FXML
    public NumberAxis yAxis;

    @FXML
    AnchorPane PreliminaryTurbinesizing_Geometry;

    @Override
    public void initialize(URL location,ResourceBundle resources){

    }
}

有趣的是,看起来我可以访问适当的控制器。我试过从与LineChart相同的控制器打印字符串,并且效果很好。但是,所有与LineChart相关的代码似乎都被忽略了,并且没有显示在图表上。

Lee_Ryan 回答:JavaFX,尝试将折线图数据系列动态传递给控制器​​时出现问题

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3170136.html

大家都在问