Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 4 sur 4
  1. #1
    Invité de passage
    Homme Profil pro
    Inscrit en
    juin 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : juin 2012
    Messages : 23
    Points : 0
    Points
    0

    Par défaut Infobulle sur un point

    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.

  2. #2
    Modérateur
    Avatar de Robin56
    Homme Profil pro Nicolas
    Ingénieur développement logiciels
    Inscrit en
    juin 2009
    Messages
    3 970
    Détails du profil
    Informations personnelles :
    Nom : Homme Nicolas
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : juin 2009
    Messages : 3 970
    Points : 9 636
    Points
    9 636

    Par défaut

    Via un JToolTip par exemple.

  3. #3
    Invité de passage
    Homme Profil pro
    Inscrit en
    juin 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : juin 2012
    Messages : 23
    Points : 0
    Points
    0

    Par défaut

    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

    Code :
    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 voici ma classe

    Code :
    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();
      	}
     
     
      }
    et je dérive encore une fois pour avoir ceci

    Code :
    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);
      	}
     
     
      }
    Je vois pas comment adapter ces méthodes à mes points

  4. #4
    Modérateur
    Avatar de sinok
    Profil pro
    Inscrit en
    août 2004
    Messages
    8 762
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : août 2004
    Messages : 8 762
    Points : 12 849
    Points
    12 849

    Par défaut

    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.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •