Нет выполнения, когда нажата кнопка javafx - PullRequest
0 голосов
/ 17 октября 2019

У меня проблема в том, что когда я нажимаю кнопку входа в систему, это ничего не делает. Не выдается никаких исключений, и try - catch, похоже, не отлавливает никаких ошибок / исключений. Просматривал потоки и не нашел ничего, что работает.

Я добавил операторы print в коде, и кажется, что он останавливается прямо в начале первого блока try, также добавил stackTrace в обоих catchблоков и ничего

void getLoginAction(ActionEvent event) throws IOException, Exception {
        String username = tfUsername.getText();
        String password = tfPassword.getText();
        loggingUsers.setUserName(username);
        loggingUsers.setPassword(password);

        FileHandler userFh = new FileHandler("UserLog.txt", true);
        SimpleFormatter sf = new SimpleFormatter();
        userFh.setFormatter(sf);
        uLog.addHandler(userFh);
        uLog.setLevel(Level.INFO);

        try {
            ObservableList<User> loginInfo = DatabaseMan.getActiveUsers();

            loginInfo.forEach((u) -> {
                try {
                    assert loggingUsers.getUserName().equals(u.getUserName()) && loggingUsers.getPassword().equals(u.getPassword()) : "Incorrect login info!";
                    loggingUsers.setUserId(u.getUserId());
                    try {
                        Appointment upcomingAppt = DatabaseAppointments.getUpcomingAppt();
                        if (!(upcomingAppt.getAppointmentId() == 0)) {
                            Alert apptAlert = new Alert(Alert.AlertType.INFORMATION);
                            apptAlert.setTitle("Upcoming Appointment Reminder");
                            apptAlert.setHeaderText("You have an upcoming appointment!");
                            apptAlert.setContentText("You have an appointment scheduled" 
                                    + "\non " + upcomingAppt.getStart().format(DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL))
                                    + "\nat " + upcomingAppt.getStart().format(DateTimeFormatter.ofLocalizedTime(FormatStyle.FULL))
                                    + " with client " + upcomingAppt.getCustomer().getCustomerName() + ".");
                            apptAlert.showAndWait();
                            if (apptAlert.getResult() == ButtonType.OK) {
                                userLog.log(Level.INFO, "User: {0} logged in.", loggingUsers.getUserName());
                                Stage loginStage = (Stage) btnLogin.getScene().getWindow();
                                loginStage.close();
                                FXMLLoader apptCalLoader = new FXMLLoader(AppointmentCalendarController.class.getResource("MainAppointment.fxml"));
                                Parent calScreen = calLoader.load();
                                Scene calScene = new Scene(calScreen);
                                Stage calStage = new Stage();
                                calStage.setTitle("Appointment Calendar");
                                calStage.setScene(apptCalScene);
                                calStage.show();
                            }
                            else {
                                apptAlert.close();
                            }
                        }
                        else {
                            userLog.log(Level.INFO, "User: {0} logged in.", loggingUsers.getUserName());
                            FXMLLoader apptCalLoader = new FXMLLoader(AppointmentCalendarController.class.getResource("MainAppointment.fxml"));
                            Parent calScreen = calLoader.load();
                            Scene calScene = new Scenec(calScreen);
                            Stage calStage = new Stage();
                            calStage.setTitle("Appointment Calendar");
                            calStage.setScene(apptCalScene);
                            calStage.show();
                            Stage loginStage = (Stage) btnLogin.getScene().getWindow();
                            loginStage.close();
                        }
                    }
                    catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                catch (AssertionError e) {
                    System.out.println(e.getMessage());
                    this.lblAlert.setText(this.rb.getString("lblErrorAlert") + ".");
                    this.lblAlert.setTextFill(Paint.valueOf("RED"));
                    userLog.log(Level.WARNING, "Invalid credentials entered! User: {0}", loggingUsers.getUserName());
                }
            });
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }

сообщений об ошибках нет и ничего не происходит при нажатии кнопки

1 Ответ

1 голос
/ 18 октября 2019

Мы отказались от ActionEvent, помеченного для наших нажатий кнопок
Вот как мы называем наши события Action и пример кода
Declare On Action
Снимок экрана взят из сценыBuilder

    @FXML
private void onBack() throws IOException{
    stage = (Stage)childTVPane.getScene().getWindow();// pane you are ON
    paneStart = FXMLLoader.load(getClass().getResource("start.fxml"));// pane you are GOING TO
    Scene scene = new Scene(paneStart);// pane you are GOING TO
    scene.getStylesheets().add(getClass().getResource("diary.css").toExternalForm());
    stage.setScene(scene);
    stage.setTitle("Diary"); 
    stage.show();
    stage.sizeToScene();
    stage.centerOnScreen(); 
}

Наслаждайтесь и добро пожаловать в SO

...