我知道这里有问题,但我找不到解决问题的方法。
public void markEpisodeAsWatched() {
getStage().getScene().setCursor(Cursor.WAIT);
// Platform.runLater(new Runnable() {
// @Override
// public void run() {
try {
showTaggedShows();
} catch (SQLException e) {
e.printStackTrace();
}
getStage().getScene().setCursor(Cursor.CROSSHAIR);
// }
// });
}
方法markEpisodeAsWatched在单击按钮时调用,我无法在启动showTaggedShows方法之前找到如何更改光标,在此操作完成后,我的光标只会更改为CROSSHAIR。 正如你所看到的,我已经尝试过使用Platform.runLater(),但似乎我不知道如何实现它,它没有改变任何东西。
感谢您的帮助!
解决方案:感谢James_D,他指出了正确的答案
scene.setCursor(Cursor.WAIT);
Task<Void> task = new Task<Void>() {
@Override
public Void call() {
try {
showTaggedShows();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null ;
}
};
task.setOnSucceeded(e -> scene.setCursor(Cursor.CROSSHAIR));
new Thread(task).start();