我在主线上。从菜单中选择项目时,必须先调用数据库,然后gui才能显示新面板。这需要一些时间。在此期间,我想显示等待光标。 我发现了一种方法,但代码看起来很难看。怎么可以做得更优雅呢? 这个问题与其他问题不同,因为长期运行的任务正在处理gui。
menuitem.setOnAction(event -> { szene.setCursor(Cursor.WAIT);
Task<Void> task = new Task<Void>()
{
@Override
public Void call() throws Exception
{
Platform.runLater(new Runnable()
{
@Override
public void run()
{
// do some stuff
szene.setCursor(Cursor.DEFAULT);
}
});
return null;
};
};
new Thread(task).start();
});
答案 0 :(得分:1)
您可以使用:
Task<Void> task = new Task<Void>() {
@Override
protected Void call() throws Exception {
//action
return null;
}
};
task.setOnSucceeded(e -> scene.setCursor(Cursor.DEFAULT));
task.setOnFailed(e -> scene.setCursor(Cursor.DEFAULT));
scene.setCursor(Cursor.WAIT);
new Thread(task).start();