簡體   English   中英

使用另一個 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;
    }
}

但是,這不起作用,我不知道為什么。 有人可以幫助我嗎? 我什至不知道這是否是最好的方法(使用兩個類),但如果有更好的方法,請告訴我。 提前致謝!

我想到了! 我只需要在 EventHandler 中移動條件

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM