Lorsque vous commencez à traiter quelque chose avec JavaFX, affichez l'image chargée et Il s'agit d'un exemple de programme qui affiche une autre image montrant le résultat du traitement lorsque le traitement est terminé.
↑ est un exemple dont le traitement est lancé en appuyant sur le bouton, le traitement est terminé après 3 secondes et le résultat du traitement est réussi.
J'ai fait référence à un programme quelque part, mais je l'ai écrit parce que je l'ai oublié et il m'a fallu beaucoup de temps pour le trouver avant.
J'ai mis tout le code sur GitHub.
Lorsque vous appuyez sur le bouton, l'image de chargement (l'image tournante) s'affiche en premier.
SampleController.java
// set loading image
this.image.setImage(new Image(getClass().getResourceAsStream("/images/loader.gif")));
Après cela, commençons un traitement (cette fois, en attendant 3 secondes).
SampleController.java
Thread t = new Thread(() -> {
try {
// wait 3 seconds
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
...
De plus, écrivez le traitement une fois le traitement terminé (affichage de l'image du cercle bleu montrant le résultat).
SampleController.java
...
Platform.runLater(() -> {
// after finishing some processes
// set result image
this.image.setImage(new Image(getClass().getResourceAsStream("/images/maru.png ")));
});
});
Étant donné que des threads sont utilisés, des exceptions peuvent survenir en fonction du traitement, donc Veuillez prendre les mesures appropriées.
Recommended Posts