2017-03-06 52 views
1

我已经在网上搜索了一个答案,并且无法将它们理解为我的代码。我仍然是javafx的新手,并且一般编码。Javafx如何关闭控制器类的场景

我的控制器类“MainController.java”功能我所有的按钮,标签,文本字段等我创建了一个登录按钮,将成功登录加载主场景。但是,当主场景作为单独的窗口加载时,旧的初始登录场景仍然存在,我想知道是否有一种简单的方法来从控制器类中控制场景。

这里是我的代码的控制器类位:

// Login button method call 
    public void Login() throws Exception { 
     Thread.sleep(500); // login delay 

     if (userInput.getText().equals("user") && passInput.getText().equals("pass")){ 
      // load main scene 
      Parent root1 = FXMLLoader.load(getClass().getResource("/application/Main.fxml")); 
      Scene scene1 = new Scene(root1); 
      Stage mainScene = new Stage(); 
      scene1.getStylesheets().add(getClass().getResource("application.css").toExternalForm()); 
      mainScene.setScene(scene1); 
      mainScene.initStyle(StageStyle.UNDECORATED); 
      mainScene.show(); 
     }else { 
      status = "Invalid credentials"; 
      statusLabel.setText(status); 

     } 
    } 

我不确定如何隐藏我的老初始场景(登录场景)。我试过做

loginScene.hide(); 

但我似乎无法链接两者。我很新,所以帮助将不胜感激。谢谢:d

回答

0

创建主类

public static Scene mainLoginScene; 

,并在主方法中添加

mainLoginScene = loginScene; 

在控制器类,你可以现在

MainClass.mainLoginScene.hide(); 

我希望我能帮助你,我的英语不完美,我在这里是新的:)

+0

谢谢,这对我有用。我完全忘记了这样做。 – Bruce219