我正在尝试更改光标以指示程序正忙。看起来这应该很简单,但我无法让它正常工作,搜索了几个小时后,我还没有想出解决方案。这就是我想要做的。
public class ButtonTest extends Application {
@Override
public void start(Stage primaryStage) {
final StackPane root = new StackPane();
primaryStage.setScene(new Scene(root, 200, 150));
Button button = new Button();
button.setText("Button");
root.getChildren().add(button);
primaryStage.show();
button.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
// Set the cursor to the wait cursor.
root.setCursor(Cursor.WAIT);
// Do some work.
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
// Set the cursor back to the default.
root.setCursor(Cursor.DEFAULT);
}
});
}
public static void main(String[] args) {
launch(args);
}
}
如果我注释掉 setCursor(Cursor.DEFAULT),在我按下按钮后它会等待 5 秒,然后将光标更改为等待光标。所以它似乎一直等到睡眠之后,然后执行 setCursor(Cursor.WAIT),然后立即执行 setCursor(Cursor.DEFAULT)。我错过了什么?