JavaFX, LineChart 从 StackPane 获取所有图例
JavaFX, LineChart get all legends from StackPane
我有 StackPane
和 LineChart
,每个 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();
}
}
我有 StackPane
和 LineChart
,每个 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();
}
}