cs_seb87
Messages postés37Date d'inscriptionvendredi 9 janvier 2004StatutMembreDernière intervention 6 septembre 2004
-
3 juin 2004 à 15:15
cs_seb87
Messages postés37Date d'inscriptionvendredi 9 janvier 2004StatutMembreDernière intervention 6 septembre 2004
-
7 juin 2004 à 07:51
C encore moi désolé mais je pense qu'a ce rythme la je vais poster une question par jour .
voila mon probleme,
jai une image qui s'affiche dans un JScrollPane, parce l'image affichée peut etre superieur a la taille de ma fenetre.
quant l'utillisateur clique sur l'image je voudrai que cela affiche un point a l'endroit ou il a cliqué tout en recupérant les coordonnées du point .
pour l'instant j'ai mis un listener sur mon Jscrollpane qui recupere les coordonnées de la souris. mais si j'agrandi ma fenetre ou que je "navigue" sur l'image je ne recupére pas les bon coordonnées.
Il est imperatif que je recupere les bons puisqu'ils sont stockés dans une BD (repere topologique de composants), mais comment faire?
felipelvh
Messages postés27Date d'inscriptionlundi 30 décembre 2002StatutMembreDernière intervention10 juin 2004 3 juin 2004 à 17:59
Si j'ai bien compris :
Lorsque le coin superieur gauche de ton image n'est plus au niveau du coin superieur gauche de ton ScrollPane : tu récupere des mauvaise coordonnées...
Le probleme c que tu récupere les coordonnées du clic dans le JScrollPane , où que se trouve l'image.
Il faut que tu décale les coordonnées de l'evenement par les coordonnées de ton image.
En d'autres termes ...
(evt.getX() - image.getX() , evt.getY() - image.getY())
sont les coordonnées du clic sur l'image (par rapport à l'image)...
cs_seb87
Messages postés37Date d'inscriptionvendredi 9 janvier 2004StatutMembreDernière intervention 6 septembre 2004 3 juin 2004 à 20:31
en fait j'ai résolu mon probleme en mettant mon evenement sur le JPanel qui contient l'image, et non plus sur le JscrollPane qui encapsule tt ca. Bref pas evident les interfaces swing.
par contre j'ai un autre probleme les coordonnes stockés ds ma BD ont comme origine(0,0) le coin inferieur gauche et les coordonnes retourné par getX et getY on comme origine le coin superieur gauche
ya til un moyen simple pour changer l'emplacement de l'origine :clown)
Vous n’avez pas trouvé la réponse que vous recherchez ?
felipelvh
Messages postés27Date d'inscriptionlundi 30 décembre 2002StatutMembreDernière intervention10 juin 2004 4 juin 2004 à 15:16
Salut !
ouais tu as raison : changer le listener c etait le plus simple..
ensuite pour tes coordonnées:
JPanel.getHeight - evt.getY() : inverse l'origine (haut - bas)
cs_seb87
Messages postés37Date d'inscriptionvendredi 9 janvier 2004StatutMembreDernière intervention 6 septembre 2004 4 juin 2004 à 15:22
arff merci en fait c'etait simple mais maintenant je viens de me rendre compte que les coordonnées stockées dans la BD sont en millimetres et que moi je recupere des coordonnées à l'echelle du pixel.