J'essaie d'animer une pièce d'échecs dans un tableau. D'abord j'ai créé un objet java.util.Timer que "scheduleAtFixedRate" un TimerTask implémenté comme une fonction proxy. Donc j'ai gardé un enregistrement de la pièce à déplacer (enregistrement de pièce) et quand c'est approprié (quand l'utilisateur déplace la pièce en utilisant la souris), la fonction de proxy TimerTask devrait être testée si l'enregistrement n'est pas nul et exécuter la pièce fonction de déplacement. La fonction de déplacement des pièces met juste à jour les coordonnées x et y de la pièce, en fonction d'un vecteur pré-calculé. Je mets un add-watch sur le morceau-moving-record donc quand il change il devrait repeindre le tableau (canvas). La méthode de peinture teste si ce disque n'est pas nul pour le peindre.Comment faire de l'animation en utilisant swing et clojure?
Le problème est que l'animation n'apparaît pas. La pièce saute juste au destin, sans le mouvement entre. Il y a un problème avec le schéma d'animation ou y a-t-il une meilleure façon de le faire?
Vous avez raison, le mouvement fonctionne maintenant mais n'est pas encore assez lisse, permettrait de vérifier les minuteries de swing plus. Merci pour votre réponse. –
Vous ** N'AVEZ PAS ** à utiliser ** Swing Timer ** pour animer vos composants. Vous pouvez configurer une minuterie avec * n'importe quel * utilitaire que vous voulez, puis passer l'exécution à EDT avec ** SwingUtilities.invokeLater ** (ou ** invokeAndWait **). – SkyDan