JavaFX, LineChart 从 StackPane 获取所有图例

JavaFX, LineChart get all legends from StackPane

我有 StackPaneLineChart,每个 LineChart 可以有几个系列。 使用方法 getLegend() 我只获得只有一个系列的图表的图例。我想获得所有系列的传奇,将它们放在底部。 代码如下:

    public Node getLegend() {
    HBox hbox = new HBox();

    final CheckBox baseChartCheckBox = new CheckBox(baseChart.getYAxis().getLabel());
    baseChartCheckBox.setSelected(true);
    baseChartCheckBox.setDisable(true);
    baseChartCheckBox.getStyleClass().add("readonly-checkbox");
    baseChartCheckBox.setOnAction(event -> baseChartCheckBox.setSelected(true));
    hbox.getChildren().add(baseChartCheckBox);

    for (final LineChart lineChart : backCharts) {
        CheckBox checkBox = new CheckBox(lineChart.getYAxis().getLabel());
        checkBox.setSelected(true);
        checkBox.setOnAction(event -> {
            if (backCharts.contains(lineChart)) {
                backCharts.remove(lineChart);
            } else {
                backCharts.add(lineChart);
            }
        });
        hbox.getChildren().add(checkBox);
    }

    hbox.setAlignment(Pos.CENTER);
    hbox.setSpacing(20);
    hbox.setStyle("-fx-padding: 0 10 20 10");

    return hbox;

我决定了:

ObservableList<LineChart> charts = backCharts;
            for (LineChart linechart : charts)  {
                ObservableList<XYChart.Series> serieslists = linechart.getData();
                for (XYChart.Series list : serieslists) {
                    list.getName();
                    }
            }