J'aimerais réaliser l'animation de chargement suivante avec Java Swing: P>
p>
Le cercle doit tourner dans le sens des aiguilles d'une montre. P>
Quelle serait la meilleure façon de le faire? p>
Merci beaucoup. P>
4 Réponses :
Ceci pourrait être dessiné avec un composant personnalisé ou une icône personnalisée, à l'aide d'appels réguliers alternativement, des images d'exportation d'Inkscape (ou d'un autre programme graphique) et chargez-les comme des images. P> java2D code>. Pour moi, il ressemble à un
arc2d code> avec un
basicstroke code> dessiné avec un
gradientpaint code>. P>
Utilisez simplement une imageicon et un gif animé. Voir settimageobserver dans imageicon. P>
Les icônes de chargement peuvent être effectuées à l'aide d'une variété de générateurs en ligne tels que ajaxload . p>
Vous pouvez utiliser le icône animée classe pour créer votre propre Animation en utilisant votre icône existante. P>
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: p> Quelques points de cette approche: Donc, je pouvais obtenir mon gif d'animation dans mon JPanel et cela a fonctionné comme un charme. P> P>
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.
p>
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.
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 .