public void startApp(){
primaryStage.show();
new Thread(new Runnable(){
public void run(){
Thread.sleep(20000);//2 seconds
//do something.........
System.out.println("all things done");
}
}).run();
}
我认为primaryStage将首先显示。但事实上,在新线程完成后(在打印完所有内容之后),primaryStage始终显示。如果我删除'Thread.sleep(20000)',那么在所有事情完成之后,primaryStage也会被删除。为什么?我错了吗? 先谢谢你们所有人!
答案 0 :(得分:9)
primaryStage始终在新主题完成后显示
您不是在这里创建新线程。您只是在Runnable对象上调用run()
方法。
您需要使用.start()
代替.run()
才能在新主题中执行。
答案 1 :(得分:0)
也许你想要的是这样的:
for (int i = 0; i < results.size(); i++) {
MyModel model = results.get(i);
updateChecked(model);
}
您需要实施public void startApp(){
primaryStage.show();
new Thread(new Runnable(){
@Override
public void run() {
try {
Thread.sleep(20000);//2 seconds
} catch (InterruptedException e) {
e.printStackTrace();
}
//do something.........
System.out.println("all things done");
}
}).run();
}
run()