IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaces Graphiques en Java Discussion :

Quand et dans quels cas utiliser les méthodes repaint() et validate()?


Sujet :

Interfaces Graphiques en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de kayzra
    Inscrit en
    Novembre 2006
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 110
    Par défaut Quand et dans quels cas utiliser les méthodes repaint() et validate()?
    Je souhaiterai savoir si il est toujours nécessaire d'appeler les méthode repaint() et revalidate() / validate() quand on modifie dynamiquement des conteneurs ou des composants?

    De plus faut-il appeler ces méthodes avant ou après l'affichage dans le code ?

    Merci d'avance d'éclairer ma lanterne de débutant autodidacte en Java et qui par conséquent ne peux s'appuyer que sur vos conseils.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Personnellement j'utilise ce genre de méthode uniquement quand l'interface graphique nécessite d'être redessiner

  3. #3
    Membre confirmé Avatar de L8O8L
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 148
    Par défaut
    J'avais une question a ce sujet :

    -> JE veux tracer une croix de haut en bas et de gauche à droite dont le centre est la souris.
    Je met ca sur un panel mais quand je veux que la croix ne "colorie" pas le panel, j'utilise la fonction repaint() et tout le panel se recharge. Vu que c'est un graphique il se repaint et c'est assez long a charger.
    Comment faire, n'y a-t-il pas une autre methode.

  4. #4
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Je souhaiterai savoir si il est toujours nécessaire d'appeler les méthode repaint() et revalidate() / validate() quand on modifie dynamiquement des conteneurs ou des composants ?
    Ca dépend ce que tu appelles "modifier". Si c'est ajouter/redimensionner/déplacer des composants alors oui il va falloir revalider dans la plupart des cas je pense. Si c'est rendre visible ou invisible un composant, pas besoin. Et une fois ton composant validé, il faut rafraichir l'affichage et donc utiliser #repaint.

    De plus faut-il appeler ces méthodes avant ou après l'affichage dans le code ?
    Je ne comprends pas la question. C'est quoi "l'affichage dans le code" ?


    Sinon la javadoc de ces méthodes est assez claire je trouve. Il faut la lire.

  5. #5
    Membre confirmé Avatar de kayzra
    Inscrit en
    Novembre 2006
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 110
    Par défaut
    Excusez mon manque de clarté, j'ai posté cette question à 7h00 du mat, j'avais pas encore avalé mon café

    Ca dépend ce que tu appelles "modifier".
    je voulais dire par exemple modifier l'icone du composant ou lorsque l'on ajoute un composant à un conteneur dynamiquement.

    Je ne comprends pas la question. C'est quoi "l'affichage dans le code" ?
    Je voulais dire avant ou aprés un appel de setVisible(true)

    Et comme la question de L8L m'interesse aussi est-il possible d'appliquer un repaint() que sûr une partie d'un conteneur?

  6. #6
    Membre confirmé Avatar de L8O8L
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 148
    Par défaut
    Merci de te ralier a ma cause ^^

  7. #7
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Citation Envoyé par kayzra
    Et comme la question de L8L m'interesse aussi est-il possible d'appliquer un repaint() que sûr une partie d'un conteneur?
    faut fouiller un peu dans la javadoc de temps en temps au lieu de croiser les orteils à attendre qu'on vous ponde tout.

    Oui c'est possible, et c'est tout simplement la méthode repaint avec des paramètres différents, à vous de trouver laquelle

  8. #8
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Grosso merdo

    Un repaint ne lancera que les opérations de dessin (c'est à dire l'appel à paint et par là même à paintComponent)

    Un validate ou revalidate va déclencher par contre un revalidation complète du composant c'est à dire qu'il va recalculer le layout, donc redimensionner tous les composants fils et les replacer, puis lancer un paint et ainsi de suite.

Discussions similaires

  1. Réponses: 55
    Dernier message: 18/03/2014, 12h11
  2. Réponses: 17
    Dernier message: 05/03/2014, 14h03
  3. Dans quel cas utiliser PHP, .Net ou Java ?
    Par mic79 dans le forum Langage
    Réponses: 4
    Dernier message: 28/11/2008, 18h58
  4. Réponses: 14
    Dernier message: 03/04/2008, 01h44
  5. [Zope] Dans quel cas utiliser zope ?
    Par kalimero dans le forum Zope
    Réponses: 3
    Dernier message: 26/07/2005, 09h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo