Bonjour à tous !
J'essaie de faire une application dans laquelle j'aimerais avoir une "image" (c'est en fait un traitement d'une image auquel on rajoute des choses) en fond qui se réactualiserais à chaque fois que la souris clique.
Pour l'instant, je l'affichais à chaque appel de paintComponent mais le traitement devient lourd et l'affichage s'en ai ressenti.
J'aimerai donc afficher cette "image" de fond uniquement au premier appel de paintComponent et à chaque fois que la souris clique.
Néanmoins (si c'était que ça, ça va^^), je veux aussi que lorsque la souris bouge une petite image suive le curseur. Quand je réaffichais à chaque fois, ça ne posait pas de problème, mais lorsque j'ai essayé de ne faire afficher le fond que lorsqu'il y en avais besoin, super.paintComponent(g) effacait le fond et sans le super, j'ai une trace de où est aller mon curseur par la petite image qui suit le curseur.
J'espère que c'est assez clair, n'hésitez pas à me poser des questions.
Merci d'avance !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 public void paintComponent(Graphics g){ super.paintComponent(g);//avec, imageFond ne s'affiche pas, sans, ce qui est dessiné par drawCursor ne s'efface pas g2d = (Graphics2D)g; g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); try { if (flagFirstTimeInPain || flagMouseClicked)//pour ne l'afficher que lorsqu'il y en a besoin { imageFond.draw(g2d, step, this); flagFirstTimeInPain = false; flagMouseClicked = false; } drawCursor(); } catch (IOException e) { e.printStackTrace(); } }
Schnuffel
Partager