Почему FadeTransition играют при завершении текущего потока? - PullRequest
0 голосов
/ 17 мая 2018

Я хочу исчезнуть в окне входа в систему при вызове REST API. Я использовал FadeTransition, но он начинается с завершения текущего потока. Я хочу, чтобы сначала исчезло LoginWindow, а затем - дальнейшее выполнение кода. Ниже мой код:

public void login() throws IOException
{
    logger.info("username = " + username.getText() + ", password = " + password.getText());

    FadeTransition ft = new FadeTransition(Duration.millis(100), loginAnchorPane);
    ft.setFromValue(1.0);
    ft.setToValue(0.5);
    ft.play();



    Matcher matcher = VALID_EMAIL_ADDRESS_REGEX.matcher(username.getText());
    if (!matcher.matches())
    {
        errorLabel.setText(resourceBundle.getString("invalid_email"));
        return;
    }

    if (StringUtils.isEmpty(password.getText()))
    {
        errorLabel.setText(resourceBundle.getString("invalid_password"));
        return;
    }

    errorLabel.setText("");

    System.out.println("first line " + new Date());
    boolean success = userService.login(username.getText(), password.getText());
    System.out.println("second line " + new Date());

}

Он печатает 2-ю строку и после этого исчезает LoginWindow. сначала я хочу исчезнуть из LoginWindow, после чего оно должно вывести first line и second line.

Я пробовал Platform.runLater и new Thread(), но это тоже не сработало. Как воспроизвести анимацию непосредственно перед выполнением следующей строки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...