2017-09-24 61 views
0

我需要创建一个类,并创建一个新的阶段,并在同一个包中包含一个新的FXML文件。我遇到问题的地方在于关闭前一阶段的过程。我想有一个专门的方法来做到这一点(静态或在需要时创建该类的实例)。FXML项目 - 在条件满足的情况下创建新的阶段

基本上,我需要一个连接调用的方法:

  1. 创建与将作为参数传递一个FXML文件的新阶段。
  2. 当该方法被调用时,前一阶段必须关闭,只剩下一个阶段(新的阶段)。

感谢先进的,问候。 enter image description here

+0

获得阶段那么,什么是你的具体的编码问题?提供您的尝试,我们可以帮助您解决它。 – MinistryofChaps

+0

关闭前一个阶段的问题到底是什么?您可以在创建它时保留对它的引用,然后在需要关闭它时调用stage.hide(),对吧?! – tomorrow

+0

去检查代码[这里](https://github.com/sedj601/SimpleLoginFx)l – Sedrick

回答

0

要做你在问什么,首先你需要关闭当前阶段。要做到这一点,你需要通过场景(第一个或你想关闭的场景)作为参数或访问场景的任何元素。

,如果你想通过场景参数,你可以通过使用

private void openNewStage(Scene curScene) throws IOException{ 
    Stage stage1 = (Stage) curScene.getWindow(); 
    stage1.close(); 
    Stage stage2 = new Stage(); 
    Parent root = FXMLLoader.load(getClass().getResource("/application/fxml2.fxml")); 
    Scene scene = new Scene(root,300,300); 
    scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm()); 
    stage2.setScene(scene); 
    stage2.setTitle("Seceond stage"); 
    stage2.show(); 
} 

如果你想通过访问的第一个场景中的任何元素做...说你有一个名为在Button1的按钮第一FXML文件,那么你可以通过

Stage stage1 = (Stage) button1.getScene().getWindow(); stage1.close();

相关问题