Я хочу исчезнуть в окне входа в систему при вызове 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()
, но это тоже не сработало.
Как воспроизвести анимацию непосредственно перед выполнением следующей строки?