Мне нужна BorderPane, где каждый раз при нажатии кнопки с именем Circle, существующий круг удаляется (со всеми его свойствами) и появляется старый круг.
Как это сделать в Java?
public class CirclesAndSquares extends Application {
@Override
public void start(Stage primaryStage) {
/** set up the pane and boxes*/
BorderPane pane = new BorderPane();
HBox top = new HBox();
top.setAlignment(Pos.CENTER);
HBox bottom = new HBox();
bottom.setAlignment(Pos.CENTER);
VBox left = new VBox();
left.setAlignment(Pos.CENTER);
VBox right = new VBox();
right.setAlignment(Pos.CENTER);
Pane center = new Pane();
/** set and place the buttons */
Button btnRed = new Button("Red");
Button btnGrn = new Button("Green");
left.getChildren().addAll(btnRed, btnGrn);
Button btnRot = new Button("Rotate");
right.getChildren().add(btnRot);
Button btnSqr = new Button("Square");
Button btnCrcl = new Button("Circle");
bottom.getChildren().addAll(btnSqr, btnCrcl);
pane.setLeft(left);
pane.setRight(right);
pane.setTop(top);
pane.setBottom(bottom);
pane.setCenter(center);
/** Draw circle and square */
Rectangle square = new Rectangle();
btnCrcl.setOnAction(e -> {
Circle circle = new Circle();
circle.setRadius(50);
circle.setStroke(Color.BLACK);
circle.setFill(null);
circle.setCenterX(Math.random() * 100 + 1);
circle.setCenterY(Math.random() * 100 + 1);
center.getChildren().add(circle);
} );
Scene scene = new Scene(pane,400,400);
scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
primaryStage.setTitle("Draw square and circle");
primaryStage.setScene(scene);
primaryStage.show();
}
class CustomPane extends StackPane {
public CustomPane(Button btn) {
getChildren().addAll(btn);
setStyle("-fx-border-color: red");
setPadding(new Insets(11.5, 12.5, 13.5, 14.5));
}
}
public static void main(String[] args) {
launch(args);
}
}
Я могу добавлять новый круг каждый раз, когда нажимаю на кнопку.
Но я хочу удалить старый круг и добавить новый. Но я не нашел никакого способа сделать это.
Как мне это сделать?