JavaFX,FXML,登录表单和更改阶段或场景

时间:2018-05-17 12:23:48

标签: java javafx login javafx-8 scenebuilder

我使用Scene Builder制作了简单的登录表单。 登录表单工作正常,但是当我输入用户/通行证和主窗口打开时,仍然打开登录窗口。怎么关闭它?问候。

这是代码DomaciFinal.java:

@Override
public void start(Stage stage) {

    try {
        Parent root = FXMLLoader.load(getClass().getResource("Login.fxml"));
        Scene scene = new Scene(root);
        stage.setScene(scene);
        stage.show();
    } catch (IOException ex) {
        System.out.println(ex);
    }
}

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    launch(args);
}

MainController.java:

public class MainController {

@FXML
private Label lblStatus;

@FXML
private TextField txtUserName;

@FXML
private TextField txtPassword;

public void Login(ActionEvent event) throws Exception {
    if (txtUserName.getText().equals("user") && txtPassword.getText().equals("pass")) {
        lblStatus.setText("Uspešno ste ulogovani.");
        Stage primaryStage = new Stage();
        Parent root = FXMLLoader.load(getClass().getResource("Main.fxml"));
        Scene scene = new Scene(root);
        primaryStage.setScene(scene);
        primaryStage.show();
    } else {
        lblStatus.setText("Neispravni podaci.");
    }
}

提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以采取的一种方法是将原始舞台的场景设置为主场景。  您需要更改主类以存储舞台并添加getter以获取primaryStage,然后使用它而不是使用Login方法的primaryStage。