使用另一个 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);
}
});
我正在做一个项目,我希望在按下按钮时出现一个矩形。但是,我想通过将按钮单击指向不同的 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);
}
});