Comment faire pour que le repaint() ......

Comment faire pour que le repaint() ...... - Java - Programmation

Marsh Posté le 08-11-2002 à 11:04:08    

Je voudrais que le repaint de mon applet ne se fasse que lorsque la méthode repaint() elle même a terminée son propre déroulement. Je crois qu'il y a possiblité de créer un double buffer .. mais comment ?
Si qqun a une idée  :??:

Reply

Marsh Posté le 08-11-2002 à 11:04:08   

Reply

Marsh Posté le 08-11-2002 à 11:51:06    

bah, c tout con....Au lieu de dessiner tes éléments sur le contexte graphique de ton composant, tu crées une image de la même taille que ton composant...ensuite, tu dessines dans cette image, puis, dans paint(), tu fais juste dessiner sur ton composant, le contenu de l'image....et tu recommences....
 
Ca donne qqchose dans ce goût là :
 
 

Code :
  1. // Méthode de dessin...
  2. public void paint(Graphics g) {
  3.     // On sette la font
  4.     g.setFont(parent.getFont());
  5.     // on update
  6.     update(g);
  7. }
  8.    
  9. public void update(Graphics g) {
  10.     // dessin sur l'image off screeen
  11.     paintOffScreen();
  12.     // On colle l'image off screen sur le contexte graphique courant (double buffering)
  13.     getGraphics().drawImage(offScreenImage, 0, 0, this);
  14. }
  15. // Dessin sur l'image off screen
  16. private void paintOffScreen() {
  17.     // Création de l'image.
  18.     if (offScreenImage == null) {
  19. offScreenImage = createImage(getSize().width, getSize().height);
  20.     }
  21.     // Récupération du Graphics  
  22.     Graphics g = offScreenImage.getGraphics();
  23. // Et là, tu dessines sur le Graphics obtenu...
  24. }

Reply

Marsh Posté le 08-11-2002 à 15:00:14    

Le pb c'est que j'ai des listeneur sur mon Canvas (l'element dans lequel je met mes compo graphiques) du coup le truc de l'image c'est pas l'idéal ...

Reply

Marsh Posté le 09-11-2002 à 10:52:05    

Mais ils écoutent quoi, tes listeners?? Des évènements souris, j'imagine??? A ce moment là, t'en a rien à foutre!! Réfléchit un moment, l'image, elle est dessinée dans le Graphocs du Canvas!! Donc, si tu cliques dedans, en fait, tu cliques sur le canvas...
 
Rassure toi, mes composants graphiques AWT un peu évolués (type, le tableau de l'autre topic) sont fait comme ça, et on peut cliquer dedans!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed