Задать вопрос
Light777
@Light777
Developer

Почему не отображается ProgressBar в JavaFX?

Хочу добавить ProgressBar на страницу авторизации, чтобы показать что-то типа загрузки.
Мой код ниже не показывает ProgressBar вообще, но если закомментить блок try&catch - то ProgressBar отображается.
В чем может быть проблема?

public class LoginController {

    @FXML
    private TextField userNameField;
    @FXML
    private PasswordField passwordField;
    @FXML
    private Label errorLabel;
    @FXML
    private Button loginBtn;
    @FXML
    private ProgressBar loginProgressBar;

    @FXML
    void initialize() {

        loginBtn.setOnAction(event -> {
            loginProgressBar.setVisible(true);
            loginProgressBar.setProgress(-1.0f);
            String userName = userNameField.getText();
            String password = passwordField.getText();

            try {

                if (authenticate(userName, password)) {

                    FXMLLoader loader = new FXMLLoader();
                    loader.setLocation(getClass().getResource("/fxml/MainMenu.fxml"));

                    try {
                        loader.load();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }

                    loginBtn.getScene().getWindow().hide();

                    Parent root = loader.getRoot();
                    Stage stage = new Stage();
                    stage.setScene(new Scene(root));
                    stage.showAndWait();

                    errorLabel.setText("");
                } else {
                    errorLabel.setText("Неверные данные для входа");
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {

            }

            clearFields();

        });

    }
  • Вопрос задан
  • 148 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
azerphoenix
@azerphoenix Куратор тега Java
Java Software Engineer
Подозреваю, что вы все делаете в одном потоке.
Попробуйте отделить UI от основного потока.
Вот, чтиво по этой теме:
math.hws.edu/javanotes/c12/s2.html

Вот, тут как раз у разработчика тоже была проблема с progressBar.
https://stackoverflow.com/questions/13784333/platf...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы