有在應用層面做到這一點(我知道的),沒有直接的方法。但是,遊標是一個屬性,因此您可以將所有場景的遊標綁定到單個值。
因此,像:
public class MyApp extends Application {
private final ObjectProperty<Cursor> cursor = new SimpleObjectProperty<>(Cursor.DEFAULT);
@Override
public void start(Stage primaryStage) {
Parent root = ... ;
// ...
someButton.setOnAction(event -> {
Parent stageRoot = ... ;
Stage anotherStage = new Stage();
anotherStage.setScene(createScene(stageRoot, ..., ...));
anotherStage.show();
});
primaryStage.setScene(createScene(root, width, height));
primaryStage.show();
}
private static Scene createScene(Parent root, double width, double height) {
Scene scene = new Scene(root, width, height);
scene.cursorProperty().bind(cursor);
return scene ;
}
}
現在,任何時候你做
cursor.set(Cursor.WAIT);
通過createScene(...)
方法將改變其光標創建任何場景。
顯然光標屬性和實用方法沒有在應用程序的子類來定義;你可以把它們放在你的應用程序結構方便的地方。