Bonjour,
J'aimerais savoir s'il est possible de créer une infobulle contenant des informations spécifiques à un point lors du passage de la souris sur celui-ci ?
Merci d'avance.
Bonjour,
J'aimerais savoir s'il est possible de créer une infobulle contenant des informations spécifiques à un point lors du passage de la souris sur celui-ci ?
Merci d'avance.
Via un JToolTip par exemple.
Responsable Java de Developpez.com (Twitter et Facebook)
Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
--------
Architecte Solution
LinkedIn : https://www.linkedin.com/in/nicolascaudard/
Merci, en balayant ce document de vue, je suis tombé sur des méthodes qui s'appliquent à des objets hérités de JComponent comme setToolTextTip(String). Cependant, mes points ( que je place sur une carte) sont des objets très particuliers, dérivés de l'interface IDrawable dont l'implémentation est ci contre
et voici ma classe
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 import java.awt.Graphics; import java.awt.Rectangle; import java.awt.geom.Ellipse2D; public interface IDrawable { public void draw(Graphics g); public Rectangle getRectangle(); }
et je dérive encore une fois pour avoir ceci
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 import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Point; import java.awt.Rectangle; import java.awt.geom.Ellipse2D; import javax.swing.JComponent; public abstract class FormDrawable implements IDrawable { protected Rectangle rect; protected Color color; public FormDrawable(Color color, Point pos, Dimension dim){ this.color=color; this.rect = new Rectangle(pos,dim); } public abstract void draw(Graphics g); public Rectangle getRectangle(){ return (Rectangle) rect.clone(); } }
Je vois pas comment adapter ces méthodes à mes points
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 import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Point; public class RectangleDrawable extends FormDrawable{ public RectangleDrawable(Color color, Point pos, Dimension dim) { super(color, pos, dim); } public void draw(Graphics g) { Color c = g.getColor(); g.setColor(color); g.fillRect(rect.x,rect.y,rect.height,rect.width); g.setColor(c); } }
Ajoute une méthode contains à ton interface IDrawable.
Méthode prenant en paramètre un point et renvoyant true/false si le point est à l'intérieur/à l'extérieur de ton IDrawable (de faite, il suffit de déléguer à la méthode contains de ton Rectangle).
Puis d'ajouter également à ton interface une méthode getToolTipContent renvoyant une chaîne à afficher en tooltip.
Puis, en utilisant un vieux combo MouseListener/MouseMotionListener sur ton composant principal, tu boucle sur tes formes en demandant si le point courant de la souris est contenu dans un de tes IDrawable (méthode contains).
Si c'est le cas, tu récupère le contenu affichable dans ton IDrawable.
Puis où tu utilises les tooltip de java: http://www.exampledepot.com/egs/java...oolTipLoc.html
Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager