Получить все серии для Linechart на StackPane

Рейтинг: 1Ответов: 1Опубликовано: 06.05.2015

Имеется StackPane, содержащий LineChart-ы разных масштабов, при этом каждый LineChart может иметь несколько series, это значит, что они принадлежат одномк масштабу. Мне нужно получить все серии с их цветами и обозначениями, чтобы потом поместить их снизу (как на рисунках здесь). На данный момент метод возвращает подпись только для масштаба, но не для всех графиков, содержащихся на нём.

private final ObservableList<LineChart> backCharts = FXCollections.observableArrayList();

Метод:

    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; 
}

Ответы

▲ 1

Не совсем верно был сформулирован вопрос. Нужно было получить имя серий из объекта графика. Решение здесь