鼠标事件处理圆圈组 (JavaFX)


我想

在单击圆圈时更改半径。组"圈子"中的所有圈子。

我如何在每次设置"circle1"半径?

        for (Node circle1: circles.getChildren()) {
            if (circle1.getTranslateX() != circle.getTranslateX()) {
                circle.setRadius(60);
                //circle1.setRadius(40); <- FAIL
            }

完整代码

    Group root = new Group();
    Scene scene = new Scene(root, 800, 600, Color.web("#2E3436"));
    primaryStage.setScene(scene);
    Group circles = new Group();
    for (int i = 0; i < 2; i++) {
        Circle circle = new Circle(40, Color.web("#2E3436", 0.05));
        circle.setStrokeType(StrokeType.OUTSIDE);
        circle.setStroke(Color.web("#0086FF", 0.14));
        circle.setStrokeWidth(4);
        circle.setTranslateX(random() * 800);
        circle.setTranslateY(random() * 600);
        circle.addEventHandler(MouseEvent.MOUSE_CLICKED , (Event event) -> {
            for (Node circle1: circles.getChildren()) {
                if (circle1.getTranslateX() != circle.getTranslateX()) {
                    circle.setRadius(60);
                    //circle1.setRadius(40);
                }
            }
        });
        circles.getChildren().add(circle);
    }   
    root.getChildren().add(circles);
    circles.setEffect(new BoxBlur(2, 2, 1));

将 circle1 转换为 Circle,而不仅仅是一个节点。

最新更新