Pouriez-vous me dire quel est la diferance entre Canevas et JPanel ou Panel. Et aussi la différence entre paint et paintComponent? Enfin quel est l'intéret d' inclure le code "super.paintComponent(g);" dans le programme?
Mèrci!
Version imprimable
Pouriez-vous me dire quel est la diferance entre Canevas et JPanel ou Panel. Et aussi la différence entre paint et paintComponent? Enfin quel est l'intéret d' inclure le code "super.paintComponent(g);" dans le programme?
Mèrci!
JPanel panneau du package swing.
Panel panneau codé en awt.
Pas de différence majeure.
Il est nécessaire d'appeller super.paintComponent(g); si on veut que l'on délègue la gestion de l'affichage de java au super-classe.
Par exemple s'il y a un bouton dans un panel:
En n'appellant pas super.paintComponent, le bouton ne sera pas dessiné.Code:
1
2
3 JButton button = new JButton("toto"); panel.add (button);
Précisement, je ne pourrais pas dire, mais paint peut être appelé directement paint (g) et paintComponent ne peut pas car protected.
Canvas un composant AWT specialise pour le dessin (et encore...) a l'ecran. Peut-etre facilement remplace par un JPanel quand on fait du rendu avec Swing.
paint(Graphics graphics) est la methode a surcharger lorsqu'on veut dessiner dans un composant AWT. Il peut etre necessaire de surcharger egalement la methode update(Graphics graphics) pour directement appeler paint(graphics) pour eviter des clignotement nottament lors des animations.
paintComponent(Graphics graphics) est la methode a surcharger lorsqu'on veut dessiner dans un composant Swing. En effet le paint(Graphics graphics) d'un composant Swing appelle plusieurs autre methodes (dont paintComponent(Graphics graphics)) permettant le bon rendu du composant, de ses sous-composant, de sa bordure... mieux vaut donc eviter d'y toucher.
La surcharge de la methode update(Graphics graphics) est inutile lors de l'utilisation de Swing.