Afficher une image de chargement dans JavaFX puis afficher une autre image

Aperçu

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é.

demo.gif ↑ 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.

environnement

La description

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 ")));
	});
});

Mise en garde

É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

Afficher une image de chargement dans JavaFX puis afficher une autre image
Affichage de l'image JavaFX8
Utilisez Jenkins pour créer dans Docker, puis créez une image Docker.
[AWS CLI] Changer de rôle pour obtenir une image Docker dans un autre compte
[Java FX] IllegalArgumentException se produit dans une nouvelle image (chemin)
Afficher les images avec le rapport de mise en page automatique exactement en utilisant la bibliothèque de chargement d'images Nuke dans Swift
Comment afficher une page Web en Java
Mémo lors du tâtonnement et du développement à l'aide de JavaFX
Exécutez JUnit et Spock dans un projet maven
Un simple jeu de ciseaux-papier-pierre avec JavaFX et SceneBuilder
Affichage terrestre du système de coordonnées équatoriales dans JavaFX 3D (1)
[Mémo de travail de l'application personnelle] Comment afficher un graphique à barres et un graphique linéaire dans un graphique
[AWS Lambda] Redimensionner l'image enregistrée dans S3 et l'enregistrer dans un autre S3 (à l'aide de Ruby)
Comment implémenter une image de profil circulaire avec CarrierWave et R Magick in Rails