2014-09-04 4 views
2
import java.applet.Applet; 
import java.awt.Graphics; 

public class MyApplet extends Applet { 
    public void paint(Graphics g) { 
     System.out.println("This the test."); 
     g.drawString("This the test.", 10, 20); 
    } 
} 

sortie dans la console est:Pourquoi la méthode de peinture fonctionne-t-elle deux fois?

This the test. 
This the test. 
+0

Y a-t-il des méthodes start, stop dans la classe tp? D'où vous appelez peut-être repeindre(). –

+0

où vous appelez cette méthode? –

+0

copie possible: http://stackoverflow.com/questions/8067844/paint-in-java-applet-is-called-twice-for-no-reason – Anthea

Répondre

1

Dans la programmation graphique, la méthode paint() sera appelée autant de fois que nécessaire. Si vous mettez une autre fenêtre sur votre interface graphique, la méthode paint() sera appelée. Si vous minimisez ensuite cette fenêtre et rendez votre interface graphique visible à nouveau, la méthode paint() sera appelée à nouveau. Etc. Donc si vous avez quelque chose qui pose problème si la méthode paint() est appelée plus d'une fois, vous l'avez fait mal. Ne fais pas ça comme ça. La méthode paint() doit uniquement redessiner sa cible à partir des données existantes, il ne devrait jamais avoir à faire des calculs pour comprendre ce qu'il faut peindre.

0

La méthode de peinture est appelée à chaque fois que l'applet doit être dessinée à nouveau. Il est appelé lorsque la taille change, le GUI devient invisible et visible à nouveau ou vous pouvez l'appeler manuellement en utilisant repaint(). Parfois, il est appelé des centaines de fois si nessecary, donc ce comportement est absolument bien.

Questions connexes