我刚刚开始学习JAVAFX,现在我遇到了一个问题。我有一个登录界面,点击登录后出现一个对话框,问题是我不知道如何在对话框出现后消除登录界面。请帮我。这是我的代码
Main.java(包含登录屏幕)
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception{
Parent root = FXMLLoader.load(getClass().getResource("../view/LoginScreen.fxml"));
primaryStage.setTitle("Weltes Mart O2 Tank Module");
primaryStage.setScene(new Scene(root));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
LoginController.java(显示一个对话框)
public class LoginController {
@FXML private Text loginStatusMessage;
@FXML private Button btnLogin;
@FXML public void handleLoginButton(ActionEvent event){
System.out.println("BUTTON PRESSED");
try {
Parent root = FXMLLoader.load(getClass().getResource("../view/LoginSuccessDialog.fxml"));
Stage primaryStage = new Stage();
primaryStage.setScene(new Scene(root));
primaryStage.show();
} catch (Exception e) {
e.printStackTrace();
return;
}
}
}
答案 0 :(得分:1)
您可以使用Scene
中的任意Node
来获取对该场景的引用。您可以使用Scene
获取包含它的Window
。你可以关闭那个窗口。
假设加载项实际注入了Node
个字段,您可以使用以下代码关闭Stage
:
btnLogin.getScene().getWindow().hide();