我需要一种Stage
通过单击从内部关闭 a 的方法 a Button
。
我有一个主类,我从中创建一个带有场景的主舞台。我为此使用 FXML。
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("Builder.fxml"));
stage.setTitle("Ring of Power - Builder");
stage.setScene(new Scene(root));
stage.setMinHeight(600.0);
stage.setMinWidth(800.0);
stage.setHeight(600);
stage.setWidth(800);
stage.centerOnScreen();
stage.show();
}
现在在出现的主窗口中,我拥有通过 FXML 和适当的控件类制作的所有控件项、菜单和内容。这就是我决定在帮助菜单中包含关于信息的部分。所以当菜单帮助 - 关于被激活时,我有一个事件正在进行,如下所示:
@FXML
private void menuHelpAbout(ActionEvent event) throws IOException{
Parent root2 = FXMLLoader.load(getClass().getResource("AboutBox.fxml"));
Stage aboutBox=new Stage();
aboutBox.setScene(new Scene(root2));
aboutBox.centerOnScreen();
aboutBox.setTitle("About Box");
aboutBox.setResizable(false);
aboutBox.initModality(Modality.APPLICATION_MODAL);
aboutBox.show();
}
正如所见,关于框窗口是通过带有控制器的 FXML 创建的。我想添加一个Button
从控制器内关闭新阶段。
我发现自己能够做到这一点的唯一方法是定义一个公共静态 Stage aboutBox;在 Builder.java 类中,并从 AboutBox.java in 方法中引用该类,该方法处理关闭按钮上的操作事件。但不知何故,它感觉并不完全干净和正确。有没有更好的办法?