Не могу получить мой код для обновления графического интерфейса в javafx при работе с классом круга и увеличением радиуса - PullRequest
0 голосов
/ 24 апреля 2019

У меня есть этот код, и он должен увеличивать или уменьшать размер круга, изменяя радиус круга. Моя проблема в том, что по какой-то причине круг не обновляется при обновлении радиуса. Радиус обновляется, но круг не увеличивается и не уменьшается. Может кто-нибудь мне помочь? ниже мой код.

Я много чего перепробовал, но все сложнее и сложнее без успеха.

public class Circle_GUI extends Application {

    @Override
    public void start(Stage stage) throws Exception {

        BorderPane root = new BorderPane();
        CirclePane cp = new CirclePane();
        root.setCenter(new CirclePane());
        HBox hbox = new HBox();
        hbox.setPadding(new Insets(10, 20, 10, 20));
        hbox.setAlignment(Pos.CENTER);
        hbox.setSpacing(10);
        Button btnEnlarge = new Button("Enlarge");
        btnEnlarge.setOnAction(new EventHandler<ActionEvent>() {
            public void handle(ActionEvent e) {
                cp.enlargeShrinkCircle(true);
                System.out.println("You have enlarged");
            }
        });
        Button btnShrink = new Button("Shrink");
        btnShrink.setOnAction(new EventHandler<ActionEvent>() {
            public void handle(ActionEvent e) {
                cp.enlargeShrinkCircle(false);
                System.out.println("You have shrunk");
            }
        });
        hbox.getChildren().addAll(btnEnlarge, btnShrink);
        root.setBottom(hbox);

        Scene scene = new Scene(root, 400, 300);
        stage.setScene(scene);
        stage.setTitle("JFK=Event=Demo");
        stage.show();
    }
    class CirclePane extends StackPane {
        Circle circle = null;

        CirclePane() {
            circle = new Circle();
            circle.setRadius(100);
            circle.setStroke(Color.BLUE);
            circle.setFill(Color.AQUA);
            this.getChildren().add(circle);

        }

        void enlargeShrinkCircle(boolean enlarge) {
            if (enlarge) {
                circle.setRadius(circle.getRadius() + 10);
            } else {
                double r = circle.getRadius();
                r -= 10;
                if (r < 1.0) {
                    r = 1.0;
                }
                    circle.setRadius(r);
            }

        }
    }

Я хочу, чтобы размер Круги в графическом интерфейсе увеличивался при нажатии кнопки увеличения и уменьшался при нажатии кнопки сжатия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...