alors si on crée un composant avec un background on ne peux pas le mettre à jour?!?
ou alors utiliser la solution pas jolie de dessiner un rectangle... c'est pas super tout ca..
alors si on crée un composant avec un background on ne peux pas le mettre à jour?!?
ou alors utiliser la solution pas jolie de dessiner un rectangle... c'est pas super tout ca..
Pour chaque langage existe une faq / N'oubliez pas de lire les règles du forum
Je n'ai pas bien suivi le probleme. Mais je pourrais ajouter un avis que je pense décisif.
Il me semble avoir compris pourquoi on te dis de ne pas surcharger paintComponent(). Toutefois, si tu veut quand même le surcharger, je te conseillerai de mettre en premiere ligne de ton paintComponent() :
Comme ça, même si tu surcharge cette méthode, elle appelera toujours la méthode mère, et pourra rafraichir tes composants.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 private ... paintComponent() { super.paintComponent(); /* ou super(); (je ne me souviens plus) */ // ...... // ......
Si je n'ai pas compris le problème, j'en suis désolé et je relirai plus profondément.
J'espère t'avoir aidé... ++
Goah Sha Kree
Effectivement, idée intéressante, à tester !
PS. C'est bien super.paintComponent(). super() est le constructeur par défaut de la classe mère .
la on est ok je suis d'accord, mais la méthode paintComponent mère fait quoi de spécial pour dessiner le background?
Pour chaque langage existe une faq / N'oubliez pas de lire les règles du forum
Oui oui, il me semblai bien aussi, mais je ne savais plus si le super(); ne referencais pas automatiquement la méthode mère associé.Envoyé par Marcin
Mais effectivement, il me semble bien que c'est super.paintComponent(); (J'était pas sûr à 100%, c'est pour cela que je l'ai précisé...)
Ben, en fait j'en sais rien !!! (si ce n'est qu'elle procède à des initialisations interne à Java...)Envoyé par pollux007
La méthode mère est une méthode de l'API Java, donc on ne peut pas trop savoir ce que ça fait si ce n'est :
Ce qui n'empeche qu'il faut l'appeler...Envoyé par java.sun.com
En fait je pense qu'il est souvent nécessaire d'appeler la méthode mère quand tu surcharge une méthode. Il n'en est pas le cas, si tu veut changer le comportement en profondeur, ou si tu sais faire les initialisation autrement.
Enfin, il reste à souligner, que pour le super.paintComponent();, il faut lui passer en paramètre l'objet de classe Graphics (super.paintComponent(g);)...
Goah Sha Kree
Ben avec un peu de chance elle se chargera de faire le dessin relatif au background. Essaie !Envoyé par pollux007
De toute manière, je pense qu'il n'y a rien de magique là dedans, à un moment l'API doit bien utiliser un mécanisme semblable au remplissage du rectangle de tout à l'heure...
En fait super réferencie la classe mère. A partir de là, super() est le constructeur par défaut, super(arg1) est un constructeur valué, super.methode1() fait appel à la méthode1 de la classe mère etc.Envoyé par jak0
Oui oui, merci, je sais bien, c'était juste un trou de mémoire passager, je ne voulais simplement pas bloqué notre ami en lui fournissant une information partiellement erronéEnvoyé par Marcin
Goah Sha Kree
pour ce qui est de super je connais bien merci, mon seul problèmes concerne le background...
je vous redis tout ca bientot car pour l'instant je n'ai ni le temps ni l'accès à mon projet
Pour chaque langage existe une faq / N'oubliez pas de lire les règles du forum
Oui mais je pense que le background n'est pas appliqué parce que pour cela, la super méthode paintComponent doit être exécuté, et qu'elle ne l'est pas puisque tu la surcharge et que donc c'est ta méthode qui est appelé...Envoyé par pollux007
Goah Sha Kree
Trouvé dans un exemple de Sun :
Donc il faut bien dessiner un rectangle!... Mouais... Bof bof...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 //Paint background if we're opaque. if (isOpaque()) { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); }
Pour chaque langage existe une faq / N'oubliez pas de lire les règles du forum
J'ai essayé mais ca ne fonctionne pas...
J'ai mis opaque et background en white et appel à super.paintComponent mais aucun background
Pour chaque langage existe une faq / N'oubliez pas de lire les règles du forum
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager