Salut,
pour ceux qui avaient suivi mon problème de la dernière fois et ceux qui ne l'ont pas fait. Je cherchais à afficher des info-bulles quand je déplace le curseur de ma souris en des points définis (pixels) sur une image. Ces points définis sont stockés au préalable dans une ArrayList.
J'ai donc implémenté les méthodes mouseMoved and movedDragged de l'interface MouseMotionListener de la façon suivante pour les 2 :
J'ai aussi ajouté dans la classe principale de mon applet (méthode init) le code suivant pour que les bulles s'affichent plus vite :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 public void mouseMoved(MouseEvent e) { // On récupère les coordonnées du curseur int latSouris = e.getY(); int longSouris = e.getX(); // Parcours de la liste pour trouver si une zone d'intérêt est pointée à la souris int taille = listPositions.size(); int i = 0; Zone zoneTrouve = null; while (zoneTrouve == null && i < taille) { Zone zone = (Zone)listPositions.get(i); int latPix = zone.getLatitudePix(); int longPix = zone.getLongitudePix(); // On teste si cette zone est dans un rayon défini du curseur de la souris if ((latPix-2<latSouris) && (latSouris<latPix+2) && (longPix-2<longSouris) && (longSouris<longPix+2)) { zoneTrouve = zone; } i++; } if (zoneTrouve != null) { this.setToolTipText(zoneTrouve.getInfo()); } }
Alors ce que j'observe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 // Délai d'affichage des info-bulles en millisecondes int delai = 20; javax.swing.ToolTipManager.sharedInstance().setInitialDelay(delai);
- Les info-bulles s'affichent bien et instantanément dès que je passe en un point qui doit en faire apparaître.
- Une info-bulle, après être apparue, continue d'être affichée même quand je suis en dehors de la zone définie où rien ne devrait être vu. Elle affiche le même contenu tant que je rencontre pas un nouveau point !
- Quand l'ArrayList contenant les positions d'affichage est vidée, plus aucune info-bulle ne devrait être visible mais ça n'est pas le cas ! Dès que l'on se déplace ou clique dans la zone de dessin, la dernière info-bulle, avant que la liste ne soit vidée, refait surface !
C'est vraiment étrange car la condition de ma méthode ne devrait pas être vérifiée et pourtant ça n'est pas le cas ...
C'est comme si quelque chose était gardé en mémoire !
Merci d'avance pour vos réponses.
Partager