Evenement de souris en JAVA

Fermé
grandJack - Modifié par grandJack le 10/04/2011 à 23:08
 Utilisateur anonyme - 11 avril 2011 à 21:00
Bonjour,

je code en JAVA et je cherche a affiché la valeur d'un nombre que je représente par une ligne dans un graphe, cette ligne est tracé grace a la méthode g.drawline.

J'aimerais quand passant la souris sur cette ligne on est la valeur de ce nombre.

Existe t il une méthode capable de faire ca ?
Merci


A voir également:

3 réponses

Utilisateur anonyme
11 avril 2011 à 04:03
Salut,

Je ne comprend pas comment tu peux récupérer un nombre ou un text en cliquant (ou en survolant) une ligne. A moins que ce soient les coordonnées de cette ligne ?

Dan
0
malaik5 Messages postés 258 Date d'inscription vendredi 20 novembre 2009 Statut Membre Dernière intervention 28 novembre 2013 33
11 avril 2011 à 11:06
Salut,
essaye de regarder du coté des evenements souris: voilà une piste:

MouseEvent ;

public interface MouseListener extends EventListener {
void mouseClicked(MouseEvent e);
void mouseEntered(MouseEvent e);
void mouseExited(MouseEvent e);
void mousePressed(MouseEvent e);
void mouseReleased(MouseEvent e);
}
0
Utilisateur anonyme
11 avril 2011 à 11:53
Ok pourquoi pas, mais sommes-nous certains que LE nombre qu'il veut obtenir en cliquant sur le dessin d'une ligne est par exemple la valeur x OU la valeur y (l'une des coordonnées donc) correspondant au click ou au positionnement du curseur de la souris et peut--être lui conseiller de voir du coté de la classe MouseAdapter...
0
Oui en fait la méthode qui me permet de tracer ma ligne, ou plutôt mon segment, prend en paramètres les coordonnées x et y des points d'extrémités du segment.

Je débute en fait et je ne sais pas comment affiché des éléments juste en passant ma souris dessus.
0
et oui je veut affiché la valeur de la coordonnée Y du deuxième point si je passe ma souris sur la mon segment correspondant..

ca a l'air super chaud.. heeeeeeeelp
0
Salut,

Ce code issu du site http://www.java2s.com/Code/Java/Event/MouseMotionEventmousemoveanddrag.htm
te montrera comme il est difficile d'obtenir les coordonnées exactes d'un dessin (c'est à dire les coordonnées telles que le texte (String) ou le segmentde l'exemple suivant, tels qu'ils ont été créés).

Pour un texte il faut cliquer juste en bas et à gauche du premier caractère, sans toucher ce caractère.

Pour un segment et pour les x/y du point de droite, il faut cliquer juste à droite de la fin du segment (ton cas) et bien entendu pour obtenir x/y du point de gauche, juste à gauche du début.

C'est d'autant plus difficile que la "figure" est fine.

Le code:

   import java.awt.Color; 
   import java.awt.Graphics; 
   import java.awt.event.MouseEvent; 
   import java.awt.event.MouseMotionListener; 
   import java.awt.Font; 

   import javax.swing.JFrame; 
   import javax.swing.JPanel; 
   import java.awt.Font;  


   public class CoordonneesMouseMotionEventDemo extends JPanel implements MouseMotionListener { 
      private int x, y; 
      private static Font font20; 
    
      public CoordonneesMouseMotionEventDemo() { 
         addMouseMotionListener(this); 
         setVisible(true); 
      } 
    
      public void mouseMoved(MouseEvent me) { 
         x = (int) me.getPoint().getX(); 
         y = (int) me.getPoint().getY(); 
          
         System.out.println("x / y" + x + "/" + y);  
        
         repaint(); 
      } 
    
      public void mouseDragged(MouseEvent me) { 
         mouseMoved(me); 
      } 
    
      public void paint(Graphics g) { 
       
      // Afficher un texte (String): 
         g.setColor(Color.blue); 
         g.setFont(font20); 
         g.drawString("BONJOUR", 100, 50); 
          
       // dessiner un segment: 
         g.setColor(Color.black); 
         g.drawLine(150, 80, 200, 80); 
       
         g.setColor(Color.red); // blue 
         g.fillRect(x, x, 0, 0); //0, 0 pour ne pas afiicher la "trace" mais lister les cordonnées 
         // voir ce que nous obtenons avec par exemple: 
       // g.fillRect(x, x, 4, 4); 
      } 
    
      public static void main(String[] args) { 
       
         font20 = new Font("Arial", Font.BOLD, 20); 
          
         JFrame f = new JFrame(); 
         f.getContentPane().add(new CoordonneesMouseMotionEventDemo()); 
         f.setSize(400, 400); 
         f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 
         f.setVisible(true); 
      } 
   } 


Tu peux essayer et me dire ce que tu en penses.

Cordialement,

Dan
0