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

AWT/Swing Java Discussion :

Validate() ou revalidate()


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 127
    Par défaut Validate() ou revalidate()
    Bonjour,

    j'ai beau avoir lu et relu tous les tutos que j'ai pu trouver impossible de m'en sortir.

    Ce que je cherche à faire est pourtant simple.

    J'ai une JFrame, un JPanel qui contient un autre JPanel (avec un gridLayout).

    Mon gridLayout est composé entièrement de JLabel qui affichent des icon, dont je modifie le contenu au fur et a mesure de l'execution.

    Je rencontre constamment des problèmes pour réactualiser le contenu de mes JLabel.

    En fait, je ne maitrise pas bien les validate() et revalidate(). Quand dois-je les utiliser et pour quels conteneurs ?

    J'avais compris qu'il fallait faire JLabeltrucmuch.revalidate() dès que je change l'icone d'un JLabel.
    puis JPanelContenant.validate() dans la foulée.
    Il semble que ce ne soit pas ça.

    Merci de votre aide.

  2. #2
    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
    Pas du tout.
    Si tu changes l'icône d'un JLabel et que le label ne change pas de taille, tu dois simplement appeler repaint().
    (re)validate servent a reconstruire la taille et la position des composants au sein d'un layoutmanager en cas de modification "majeure" (e.g. suppression de composants, ajouts de composants, modification de la taille de composants).

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 127
    Par défaut
    merveilleux, merci !

    Autre petite question dans le même ordre :

    J'ai un tableau de JLabel (JLabeltableau [][]) que j'ai rajouté élément par élément à mon JPanel. Parfois je modifie un JLabel :

    JLabeltableau [4][9] = MonJLabel;

    Si par la suite, je veux repeindre ce JLabel est ce que :

    JLabeltableau [4][9].repaint();

    et

    MonJLabel.repaint();

    auront la même signification et le même effet? ou bien est ce qu'il faut que j'utilise uniquement la première instruction au motif que c'est JLabeltableau qui a été déposé dans mon JPanel.

  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
    Citation Envoyé par firgon Voir le message
    Parfois je modifie un JLabel :

    JLabeltableau [4][9] = MonJLabel;
    Ce bout de code seul va changer ton JLabel référencé dans ton tableau mais pas le JLabel affiché à l'écran (à priori, car je ne sais pas comment tu as construit le reste de ton code).

    Citation Envoyé par firgon Voir le message
    JLabeltableau [4][9].repaint();

    et

    MonJLabel.repaint();

    auront la même signification et le même effet?
    A ton avis ?
    Fait l'expérience.

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 127
    Par défaut
    Citation Envoyé par natha Voir le message
    Ce bout de code seul va changer ton JLabel référencé dans ton tableau mais pas le JLabel affiché à l'écran (à priori, car je ne sais pas comment tu as construit le reste de ton code).
    Aie, aie, aie... C'est ça que je n'avais pas pigé !!!

    Bon ben... merci pour tout, j'ai plus qu'à revoir mon code...

    Si quelqu'un à une solution...

  6. #6
    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
    Changer un JLabel par un autre c'est dommage (et consommateur de ressources).
    Tu as toutes les méthodes qu'il faut à disposition pour mettre à jour ton label existant.
    setText
    setIcon

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. validate() ? revalidate() ? rePaint() ?
    Par hoook dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 16/05/2013, 17h47
  2. validation d'un XML schema
    Par nicolas_jf dans le forum Valider
    Réponses: 2
    Dernier message: 05/05/2003, 11h25
  3. est ce un XSchema Valide?
    Par Slash dans le forum Valider
    Réponses: 4
    Dernier message: 06/03/2003, 14h01
  4. tester si une date est valide
    Par Andry dans le forum Langage
    Réponses: 5
    Dernier message: 17/09/2002, 11h54
  5. [VB6] Evenement validate
    Par grosjej dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 05/09/2002, 15h46

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