JavaFX, FXML, форма входа и изменения этапов или сцен - PullRequest
0 голосов
/ 17 мая 2018

Я сделал простую форму входа в 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 голосов
/ 17 мая 2018

Один из подходов, который вы могли бы использовать, - это просто установить сцену исходной сцены на вашу главную сцену. Вам потребуется изменить основной класс для хранения сцены и добавить метод получения для получения primaryStage, а затем использовать его вместо primaryStage в методе Login.

...