Bonjour,
voici mon problème:
J'ai une sous-classe de JPanel, un panel ou je peux dessiner.
Quand je clique sur mon Jpanel, je souhaite que le lieu où j'ai cliqué soit la nouvelle origine du système de coordonnées.
J'ai donc un truc du genre :
mais le problème c'est que le code qui dessine et qui se trouve dans "paintComponent(Graphics g)" ne tient pas compte de mon changement de repère. C'est-à-dire que je voudrais trouver un moyen de faire en sorte que l'argument passé à paintComponent soit justement mon contexte graphique modifié et pas l'original.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public void mouseClicked(MouseEvent e) { Graphics2D g = (Graphics2D)getGraphics(); g.translate(e.getX(),e.getY()); }
En fait je voudrais faire évoluer mon contexte graphique au cours de l'exécution du programme et rafraichir mon JPanel avec ce contexte modifié à chaque fois que nécessaire.
Je pense que c'est un problème assez courant dont je n'ai pas la réponse.
J'ai essayé de rajouter un champs de type Graphics à la classe Jpanel mais en vain. J'ai appelé paintComponent(g) dans la méthode "MouseClicked". Ca marche mais il parait qu'il ne faut pas appeler directement cette méthode (pour des raisons qui m'échappent). En fait il me faudrait une méthode repaint mais qui accepterait un argument de type Graphics. Il doit bien y avoir une méthode canonique et jolie de procéder.
Merci pour votre précieux éclairage.
Partager