У меня есть этот код, и он должен увеличивать или уменьшать размер круга, изменяя радиус круга. Моя проблема в том, что по какой-то причине круг не обновляется при обновлении радиуса. Радиус обновляется, но круг не увеличивается и не уменьшается. Может кто-нибудь мне помочь? ниже мой код.
Я много чего перепробовал, но все сложнее и сложнее без успеха.
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);
}
}
}
Я хочу, чтобы размер Круги в графическом интерфейсе увеличивался при нажатии кнопки увеличения и уменьшался при нажатии кнопки сжатия.