-
Zoom sur un graphique
Voila je travaille sur un graphique et j'aimerais implémenter ma fonction zoom. Le code à faire me semble très clair mais je me pose une question:
Comment faire pour que quand j'appuie sur le bouton zoom ça me demande de sélectionner la zone (le point) du graphique à partir de laquelle ça va zoomer?
-
tu utilise une librairie?
-
J'ai programmé ma propre classe Graphique qui est héritee de JPanel et qui va donc tracer un graphic dedans du type Graphics (avec méthode paint).
Y a 400 lignes mais si tu souhaites voir, dis moi.
Mais c'est surtout le bouton zoom qui me préoccupe, puisque je ne sais pas comment faire pour qu'il demande à cliquer un point du graph (tout en changeant son icone en attendant).
-
Je ne sais pas trop alors.... Il faudrait peut-être que lorsque tu cliques sur le bouton tu ajoute un écouteur (MouseListener) sur ton graphe et après les sélections tu enlèves l'écouteur
-
Tu va avoir besoin d'un écouteur de souris comme l'a indiqué pollux007. Ensuite tu peux faire une classe rectangle de sélection, par exemple que tu passe à ton panel graphique. Celui contient juste la position et les dimension du rectangle.
Tu ajoute également un attribut boolean qui indique si ce triangle doit être dessiné.
Et ton écouteur de souris modifie le rectangle de sélection. Ca demande pas mal de boulot, mais c'est pas trop compliqué.
-
k un mouslistener. Mais je veux juste un clic sur le graph et ça zoom autour de ce point. Point de rectangle.
Merci en tout cas
-
Dans ce cas, au lieu d'un boolean tu conserve la valeur du zoom, qui est incrémenté à chaque clique, ainsi que le point sur lequel l'utilisateur a cliqué. Tu peux définir que ton curseur est une loupe si tu clique sur ton bouton zoom, ainsi l'utilisateur vois qu'il peut zoomer...
-
Et changer l'icone de la souris c'est comment? (juste le temps du clic)
-
Avec la méthode :
Code:
maFenetre.setCursor(new Cursor(Cursor.HAND_CURSOR));
sauf que tu devra créer ton propre curseur à la place de cette main.
-
Tiens on va avoir Gfx qui va nous sortir sa maxime sur le Cursor et ses noisettes :lol: