Coordonnées sur JLabel

Mikonyx Messages postés 76 Date d'inscription jeudi 31 janvier 2002 Statut Membre Dernière intervention 1 septembre 2004 - 11 sept. 2002 à 14:37
Mikonyx Messages postés 76 Date d'inscription jeudi 31 janvier 2002 Statut Membre Dernière intervention 1 septembre 2004 - 13 sept. 2002 à 18:33
J'ai mis une image dans un JLabel pour l'afficher. J'aimerais savoir s'il est possible de récupérer les coordonnées de la souris lors d'un clique ou d'un déplacement sur cette image. Il me faudra des coordonnées par rapport à l'image...comme si un coin de l'image formait un repère orthonormé...Je sais que ca serait possible en récupérant la position de l'image dans la fênetre et avec un calcul ensuite mais cette position est aléatoire et donc...ca peut pas marcher!! Merci
Mikonyx

4 réponses

JHelp Messages postés 261 Date d'inscription jeudi 5 septembre 2002 Statut Membre Dernière intervention 6 octobre 2005 11
12 sept. 2002 à 15:59
Ton image n'est pas positionée aléatoirement, mais au centre de ton label. Donc pour avoir les coordonées du coin haut-gauche (x,y), il te suffit de faire
x=(largeurLabel-largeurImage)/2;
y=(hauteurLabel-hauteurImage)/2;
Ensuite, il te suffit de faire une translation.
JHelp
0
Mikonyx Messages postés 76 Date d'inscription jeudi 31 janvier 2002 Statut Membre Dernière intervention 1 septembre 2004
12 sept. 2002 à 20:04
EUH...c'est pas très clair....pourkoi on divise par 2? comment on récupère la largeur de label et de l'image au fait?...je suis ignorant je sais...snirf. Après, comme c'est les coordonnées de la souris de vois pas vrément du tout comment les récupérer...mon JLable, lui, est placé aléatoirement, suivant la taille de ma fenetre.....
merci
Miko
0
JHelp Messages postés 261 Date d'inscription jeudi 5 septembre 2002 Statut Membre Dernière intervention 6 octobre 2005 11
13 sept. 2002 à 10:40
Ok.
Bon commençons par la taille de ton JLabel.
largeurLabel=jLabel.getWidth();
hauteurLabel=jLabel.getHeight();
Ensuite celle de ton image :
largeurImage=image.getWidth(jLabel);
hauteurImage=image.getHeight(jLabel);
Ici, il faut préciser où se trouve l'image, par qui elle est "vue", pour qu'il puisse en calculer corectement les dimensions.
Pour récupérer les coordonnées de la souris, il te faut ajouter un écouteur de souris à to JLabel.
Tu as deux écouteurs de souris à ta dispositions. Le premier détecte : le clique, la presiion d'un bouton, le rela chement d'un bouton, l'entrée de la souris dans un composant, la sortie de la souris d'un composant. Le second lui, détecte, la souris qui bouge, et le drag (c'est à dire la souris sui bouge avec au moin un des boutons enfoncés).
Bon je t'explique si tu veux détecter le clique. Je vais ajouter à mes réalistions un cours sur les écouteurs, si quelqu'un en à besoin.
On ajoute l'écouteur au label, évidement, puisque c'est là qu'on cherche à détecté la souris.
jLabel.addMouseListener
(
new MouseAdapter()
{
public void mouseClicked(MouseEvent me)
{
clique(me.getX(),me.getY());
}
}
);

ensuite il te suffit de mettre ce que tu veux dans la méthode public void clique(int x,int y)
Où x et y sont les coordonées de la souris dans le label. C'est à dire que (0,0) est le coin haut gauche de ton label.

L'image est placée est centrée de ton label. Les coordonnées du centre du label est : (largeurLabel/2,hauteurLabel/2).
Piusque l'image est centée, son centre est lui aussi à ses coordonnées. danc pour se retrouvé à gauche de l'image, il suffit de parcourir la moitiée de la largeur, et même chose pour la hauteur, d'ou le coin haut-gauche est à (largeurLabel/2-largeurImage/2,hauteurLabel/2-hauteurImage/2), ce qui revient à ((largeurLabel-largeurImage)/2,(hauteurLabel-hauteurImage)/2).
Ai-je été plus clair ?
Si quelque chose te semble flou, n'esite pas.
JHelp
0
Mikonyx Messages postés 76 Date d'inscription jeudi 31 janvier 2002 Statut Membre Dernière intervention 1 septembre 2004
13 sept. 2002 à 18:33
Oui, bien plus clair! Je te remercie grandement...je ne peux le tester maintenant mais j'ai bien compris. Merci.
Miko
0
Rejoignez-nous