Bonjour,
je travaille sur un projet pour lequel je rencontre un problème sur un point précis: la communication entre les threads dans la cadre de l'animation d'un composant graphique.
Pour résumer mon problème, imaginons une application qui dessine deux rectangles de couleurs différentes et deux boutons pour activer le déplacement de ces rectangles (déplacement quelconque de 1 unité par 1 unité pendant une durée de 100 unités = mouvement de glissement du rectangle vers la gauche par exemple). Si je clique sur le bouton R alors le rectangle de couleur R se déplace successivement de 100 unités, et même chose pour le bouton C qui agit lui sur le rectangle de couleur C. Mes deux rectangles sont issus de classes différentes (titi et toto) car dans mon projet je dois gérer le déplacement d'objets de nature différente (image, rectangle, cercles, etc.).
J'ai donc deux threads différents pour lesquels j'ai redéfinit la méthode run en incluant un for et un appel à repaint() pour chaque i de la boucle. Cela marche bien mais si je clique rapidement successivment sur les deux boutons alors les rectangles ce déplacent en même temps.
Il m'est demandé de faire dialoguer les deux threads directements afin d'éviter de lancer le deuxième avant que le premier ce soit terminé. J'ai trouvé différentes solutions passant par une variable Boolean, une MessageQueue ... mais je dois utiliser les fonctions wait() et notify() pour réaliser ce projet.
=> Je bloque sur ce point depuis une dizaine de jours, est-ce que quelqu'un aurait une idée, une doc, ...
je peux fournir un exemple de code Java qui formalise mon problème.
par avance merci,
jojo
Partager