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!
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.
Merci de penser au tagquand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.
suivez mon blog sur Développez.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook
Partager