问题描述
我是 JavaFX 的新手,每当我按下按钮时,我都会尝试,首先,它会在标签上显示一些信息,然后 改变场景。 其实一切都还好,只是我不知道如何在切换场景之前等待特定的时间。
我尝试过像这样使用 Thread.sleep() :(它正确等待,但不知何故它不会改变标签的文本)
<img src={"data:image/jpeg;base64,".concat(`b64_str_img`)} width="512px"></img>
(编辑,感谢 Slaw 解决了 pause() 的 actionEvent 问题)
我也尝试了一下JavaFX的pause方法,但是没有等待,还是直接跳到另一个场景
@FXML
public void pressButton(ActionEvent event) throws IOException,InterruptedException {
user = new User(inUsername.getText(),inPassword.getText());
lLeftBottom.setText(user.getUserInfo());
Thread.sleep(2000);
changeScene2(event);
}
我该如何延迟?
解决方法
您已经向后使用了 PauseTransition。如果你想在暂停后改变场景,那是你的 onFinished 事件处理程序中需要的部分:
@FXML
public void pressButton(ActionEvent event) throws IOException,InterruptedException {
user = new User(inUsername.getText(),inPassword.getText());
PauseTransition pause = new PauseTransition(Duration.seconds(3));
pause.setOnFinished(e ->{
changeScene2(event);
});
lLeftBottom.setText(user.getUserInfo());
pause.play();
}
,
关于您的第一个问题:尝试使用 try catch。适合我。
public static void main(String[] args) {
System.out.println("test1");
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("test2");
}