Удалите cirlce из панели и добавляйте новый каждый раз при нажатии кнопки. Как мне сделать это в Java? - PullRequest
0 голосов
/ 19 февраля 2020

Мне нужна 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);
    }
}

Я могу добавлять новый круг каждый раз, когда нажимаю на кнопку.

Но я хочу удалить старый круг и добавить новый. Но я не нашел никакого способа сделать это.

Как мне это сделать?

...