Evenement de souris en JAVA
grandJack
-
Utilisateur anonyme -
Utilisateur anonyme -
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
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:
- Evenement de souris en JAVA
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Comment activer le pavé tactile sans souris - Guide
- Waptrick java voiture - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
3 réponses
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
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
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);
}
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);
}
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...
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:
Tu peux essayer et me dire ce que tu en penses.
Cordialement,
Dan
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