gpt4 book ai didi

JavaFX 获取我的应用程序的 primaryStage(主菜单)

转载 作者:行者123 更新时间:2023-11-30 08:24:13 28 4
gpt4 key购买 nike

我正在尝试使用 JavaFX 和 SceneBuilder 实现应用。

我制作了一个包含不同按钮的主菜单,每个按钮都指向不同的页面。

因此,例如,当我单击第一个按钮时,我希望切换到一个新面板,然后,如果我想返回到上一个面板,我只需单击“后退”按钮我得到的第二个面板。

第一步,当我点击按钮时有一个新页面,没问题。现在的问题是实现“后退”按钮。我想点击它,并使用上一个面板,但我找不到解决方案。

代码如下:

我的应用程序(OrderCheck.java)的启动方法

@Override
public void start(Stage primaryStage) throws Exception {

this.primaryStage = primaryStage;
FXMLLoader myLoader = new FXMLLoader(getClass().getResource("OrderCheck.fxml"));
Pane myPane = (Pane)myLoader.load();
primaryStage.setTitle("Main Menu");
OrderCheckController controller = (OrderCheckController) myLoader.getController();
controller.setPrevStage(primaryStage);
Scene myScene = new Scene(myPane);
primaryStage.setScene(myScene);
primaryStage.show();
}

主面板1个按钮的onAction示例:(OrderCheckController.java):

public void personalButtonAction(ActionEvent event) throws IOException {
Stage stage = new Stage();
stage.setTitle("Personal Menu");
AnchorPane myPane = null;
myPane = FXMLLoader.load(getClass().getResource("Personal.fxml"));
Scene scene = new Scene(myPane);
stage.setScene(scene);

prevStage.close();

stage.show();
}

单击该按钮时在新 View 中实现后退按钮的示例 (PersonalController.java):

public void backButtonAction(ActionEvent event) throws IOException {
Stage stageTheLabelBelongs = (Stage) backButton.getScene().getWindow();
setPrevStage(stageTheLabelBelongs);
prevStage.close();
stageTheLabelBelongs.show();
}

setPrevStage(Stage stage) 方法在两个 Controller (OrderCheckController 和 PersonalController)中实现

public void setPrevStage(Stage stage){
this.prevStage = stage;
}

所以现在当我在我得到的新页面上点击“后退”按钮时,窗口将快速关闭并再次打开,因为没有任何反应。

最佳答案

这样试试。我在我的应用中以这种方式引用初级阶段。

public class JavaFXApplication extends Application {

public static Stage primaryStage;

@Override
public void start(Stage stage) {

stage.setTitle("Hello World!");
stage.setScene(scene);
stage.show();

primaryStage = stage;
}

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

并且您可以使用 JavaFXApplication.primaryStage

从您的其他 Controller 访问它

关于JavaFX 获取我的应用程序的 primaryStage(主菜单),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23118620/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com