Получить все серии для Linechart на StackPane
Имеется 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;
}
Источник: Stack Overflow на русском