使用另一个 class JavaFX 更改矩形的 属性

Change the property of a rectangle by using another class JavaFX

我正在做一个项目,我希望在按下按钮时出现一个矩形。但是,我想通过将按钮单击指向不同的 class 来做到这一点。这是我尝试过的:

这是我的第一个class,“主要”

static boolean btnClicked = false;
    @Override       
    
public void start(Stage primaryStage) {
    
    Button btn = new Button("Make Popup Visible");
    
    Rectangle menu = new Rectangle(40,40,200,200);
    menu.setFill(Color.BLACK);
    menu.setOpacity(0);
    
    btn.addEventHandler(MouseEvent.MOUSE_CLICKED,(MouseEvent e) ->{
        AddRect.showMenu();
    });
    
    if(btnClicked == true) {
        menu.setOpacity(1);
    }
    
    Group root = new Group();
    root.getChildren().addAll(btn, menu);
    Scene scene = new Scene(root,400,400);
    scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
    primaryStage.setScene(scene);
    primaryStage.show();

}

public static void main(String[] args) {
    launch(args);
}

还有我的第二个 class,“AddRect”

public class AddRect {
    static void showMenu() {
        Main.btnClicked = true;
    }
}

但是,这不起作用,我不知道为什么。有人可以帮我吗?我什至不知道这是否是最好的方法(使用两个 classes),但如果有更好的方法请告诉我。提前致谢!

我想通了!我只需要将条件移动到 EventHandler

    btn.addEventHandler(MouseEvent.MOUSE_CLICKED,(MouseEvent e) ->{
        AddRect.showMenu();
        if(btnClicked == true) {
            menu.setOpacity(1);
        }
    });