J'essaie de changer le curseur pour indiquer que le programme est occupé. Il semble que cela devrait être assez simple, mais je n'ai pas réussi à le faire fonctionner correctement et après avoir cherché pendant plusieurs heures, je n'ai pas trouvé la solution. Voici ce que j'essaie de faire.JavaFX 2 curseur indicateur occupé
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);
}
}
Si je commente le setCursor (Cursor.DEFAULT), après que j'appuie sur le bouton, il attend 5 secondes, puis change le curseur sur le curseur d'attente. Il semble donc qu'il attende après le sommeil, puis exécute setCursor (Cursor.WAIT), immédiatement suivi du setCursor (Cursor.DEFAULT). Qu'est-ce que je rate?
See related: [JAVAFX: comment désactiver le bouton pour une durée spécifique?] (Http://stackoverflow.com/q/16919727) –