7
votes

Java Swing Chargement Animation

J'aimerais réaliser l'animation de chargement suivante avec Java Swing:

Entrez la description de l'image ici

Le cercle doit tourner dans le sens des aiguilles d'une montre.

Quelle serait la meilleure façon de le faire?

Merci beaucoup.


2 commentaires

L'échange d'un groupe de sprites pourrait fonctionner pour cela. Bien entendu, le chargement devrait être fait dans un fil d'arrière-plan, tel que celui fourni par un swingworker.


Voir aussi cette Q & A .


4 Réponses :


3
votes

Ceci pourrait être dessiné avec un composant personnalisé ou une icône personnalisée, à l'aide d'appels réguliers java2D . Pour moi, il ressemble à un arc2d avec un basicstroke dessiné avec un gradientpaint .

alternativement, des images d'exportation d'Inkscape (ou d'un autre programme graphique) et chargez-les comme des images.


0 commentaires

9
votes

Utilisez simplement une imageicon et un gif animé. Voir settimageobserver dans imageicon.

Les icônes de chargement peuvent être effectuées à l'aide d'une variété de générateurs en ligne tels que ajaxload .


0 commentaires

4
votes

Vous pouvez utiliser le icône animée classe pour créer votre propre Animation en utilisant votre icône existante.


0 commentaires

8
votes

Espérons que ce n'est pas trop tard pour cela.

J'ai réussi à obtenir le gif d'animation à l'intérieur de mon JPanel de cette façon: xxx

Quelques points de cette approche:
1. Le fichier image est dans le pot;
2. imageo.read () renvoie une bufferedimage, qui ne met pas à jour l'imageObserver;
3. Une autre alternative à la recherche d'images groupées dans le fichier JAR est de demander au chargeur de classe Java, le code qui chargait votre programme, pour obtenir les fichiers. Il sait où sont les choses.

Donc, je pouvais obtenir mon gif d'animation dans mon JPanel et cela a fonctionné comme un charme.


1 commentaires

GIF animé n'est pas une option, car il manque de bons et d'effets transparents lisses. Un spinner doit principalement être transparent et avec un fond 100% transparent, que les GIF ne supportent pas, sans rendre l'animation laide et pixelle. Cela fonctionne simplement pour les frontières rectangiles et sans se faner entre les objets. Alors ... comment faire cela correctement? APNG pourrait le faire, mais bien sûr, Java ne le supporte pas avec South Libs.