我在这里展示我的欢迎场景的图片。
当前 创建新项目 按钮的行为如下所示:Stage stage = (Stage)((Node)event.getSource()).getScene().getWindow();
stage.hide();
Parent root = FXMLLoader.load(getClass().getResource("/view/scene/configure/NewProjectConfigureScene.fxml"));
Scene scene = new Scene(root);
stage.setTitle("Configure New Project Settings");
stage.setScene(scene);
stage.show();
用语言解释:按钮被按下 -> 我得到了舞台 -> 隐藏当前场景 -> 将舞台切换到新场景 -> 再次显示舞台。这个行为是有效的。
我是GUI编程的新手,请耐心听我解释我的需求。
现在,我正在尝试添加一个小功能,即当按下“创建新项目”按钮时,在当前场景中会出现一个加载消息,我强制GUI等待几秒钟(以便用户有时间看到这个“加载”消息),然后继续进入下一个场景。加载消息可能会像这样。
我希望能够实现这个功能,因为在加载信息后加上等待提示会更加直观,从而提高用户使用程序的体验。我的初始尝试是做如下操作:statusText.setText("Please wait..."); // statusText is the "loading message"
Stage stage = (Stage)((Node)event.getSource()).getScene().getWindow();
try {
Thread.sleep(2000);
} catch(InterruptedException ex) {
Thread.currentThread().interrupt();
}
stage.hide();
Parent root = FXMLLoader.load(getClass().getResource("/view/scene/configure/NewProjectConfigureScene.fxml"));
Scene scene = new Scene(root);
stage.setTitle("Configure New Project Settings");
stage.setScene(scene);
stage.show();
我刚刚在这里读到,您永远不能让UI线程睡眠,因为它会冻结整个应用程序。因此,我一直在尝试上面链接中第一个答案提到的方法,即使用
javafx.concurrent.Task
,但是长时间尝试无果。
我该如何更新UI,强制等待几秒钟,然后显示新场景?