我有一個簡單系列繪製在XY折線圖,如下JavaFX 2.x:如何刪除XY線圖一旦繪製?
public class SimpleXYLineChart extends Application {
@Override
public void start(Stage stage) {
stage.setTitle("Line plot");
final CategoryAxis xAxis = new CategoryAxis();
final NumberAxis yAxis = new NumberAxis(1, 22, 0.5);
yAxis.setTickLabelFormatter(new NumberAxis.DefaultFormatter(yAxis){
@Override
public String toString(Number object){
return String.format("%7.2f", object);
}
});
final LineChart<String, Number>lineChart = new LineChart<String, Number>(xAxis, yAxis);
lineChart.setCreateSymbols(false);
lineChart.setAlternativeRowFillVisible(false);
lineChart.setLegendVisible(false);
lineChart.setTitle("LineChart");
XYChart.Series series1 = new XYChart.Series();
series1.getData().add(new XYChart.Data("Jan", 1));
series1.getData().add(new XYChart.Data("Feb", 1.5));
series1.getData().add(new XYChart.Data("Mar", 2));
series1.getData().add(new XYChart.Data("Apr", 2.5));
series1.getData().add(new XYChart.Data("May", 3));
series1.getData().add(new XYChart.Data("Jun", 4));
series1.getData().add(new XYChart.Data("Jul", 6));
series1.getData().add(new XYChart.Data("Aug", 9));
series1.getData().add(new XYChart.Data("Sep", 12));
series1.getData().add(new XYChart.Data("Oct", 15));
series1.getData().add(new XYChart.Data("Nov", 20));
series1.getData().add(new XYChart.Data("Dec", 22));
lineChart.getData().addAll(series1);
Scene scene = new Scene(new Group(), 800, 600);
final VBox vbox = new VBox();
final HBox hbox = new HBox();
final Button remove = new Button("Remove Series");
remove.setOnAction(new EventHandler<ActionEvent>() {
@Override public void handle(ActionEvent e) {
if (!lineChart.getData().isEmpty()){
System.out.println("Remove Series");
lineChart.getData().remove((lineChart.getData().size()-1),0);
}
}
});
hbox.setSpacing(10);
hbox.getChildren().addAll(remove);
vbox.getChildren().addAll(lineChart, hbox);
hbox.setPadding(new Insets(10, 10, 10, 50));
((Group)scene.getRoot()).getChildren().add(vbox);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
我想刪除行繪製(通過單擊按鈕或通過標記複選框),並具有空的場景如下
我不知道如何刪除一次繪製的線,沒有發現任何一個.remove()或.delete()方法。
如何做到這一點?
感謝
似乎(仍然)確實是一個錯誤 - 將setAnimated()設置爲false解決了這個問題。 –