我有一个主舞台,这是我的登录 此阶段的FXML具有Region和ProgressIndicator,其属性为setVisible(false)
成功登录到应用程序之后,当线程启动应用程序时,意图是以下视图此Region和ProgressIndicator,但是在记录线程后开始旋转加载应用程序,但是Region和ProgressIndicator,不可见。
我的主题
Task t = new Task() {
@Override
protected Object call() throws Exception {
Platform.runLater(() -> {
try {
new SisgeFX().start();
} catch (IOException ex) {
Logger.getLogger(LoginController.class.getName()).log(Level.SEVERE, null, ex);
}
});
return null;
}
};
region.visibleProperty().bind(t.runningProperty());
pi.visibleProperty().bind(t.runningProperty());
Thread th = new Thread(t);
th.start();
我尝试将两个线程用于引导系统,另一个用于在系统未加载时更新ProgressIndicator
,但没有成功,不会生成Excepetion
,已经尝试过几种方式。< / p>
我在几次尝试中意识到了什么:
1 - 一个线程并启动而另一个不启动(仅启动加载系统的线程)。
2 - 线程无法启动。
3 - Tread开始但是ProgressIndicator被锁定,它不是动画。
摘录登录:
@FXML
private void sysLogin() {
String user = ctfUserLogin.getText();
String pass = ctfPassLogin.getText();
LoginDAO loginDAO = DAOFactory.make(LoginDAO.class);
Login login = loginDAO.getLogin(user, pass);
if (login != null) {
runThread(); // aqui chamo a Thread postado acima.
ctfPassLogin.setStyle(null);
ctfUserLogin.setStyle(null);
} else {
ctfPassLogin.clear();
ctfUserLogin.clear();
ctfPassLogin.setStyle("-fx-border-color:red;");
ctfUserLogin.setStyle("-fx-border-color:red;");
//new ShakeTransition(vBox).play();
new WobbleTransition(vBox).play();
//new TadaTransition(vBox).play();
}
}
如何在系统加载时显示ProgressIndicator?
答案 0 :(得分:0)
在方法开头,请尝试以下声明。
Platform.setImplicitExit(false);