通过使用另一个类JavaFX更改矩形的属性

时间:2020-08-13 21:01:09

标签: java javafx

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

这是我的第一堂课,“ Main”

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);
}

还有我的第二堂课“ AddRect”

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

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

1 个答案:

答案 0 :(得分:0)

我知道了!我只需要在EventHandler中移动条件

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