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 :

[Statégie] Comment récupérer la taille d'un composant avant qu'il soit affiché


Sujet :

AWT/Swing Java

  1. #1
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut [Statégie] Comment récupérer la taille d'un composant avant qu'il soit affiché
    Bonjour,
    Je cherche à récupérer la taille d'un JLabel avant de l'avoir ajouté dans une JFrame. Seulement, il faut appeler pack() sur la JFrame pour que la taille soit vraiment calculée.
    J'arrive à le vérifier avec isDisplayable(), mais j'aimerais faire le boulot de pack() sans passer par une JFrame.

    Pour éclaircir, un peu de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    JLabel l = new JLabel("HelloWorld");
    //l.getHeight() -> 0, l.getWidth() -> 0, l.isDisplayable -> false
     
    myJFrame.getcontentPane().add(l);
    myJFrame.pack();
    //l.getHeight() -> 35, l.getWidth() -> 75, l.isDisplayable -> true
    Comment faire ça sans la JFrame (et sans les mains !) ?

  2. #2
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Ca peut paraitre un peu comme du bidouillage mais pourquoi ne pas ajouter le JLabel à la JFrame, faire un pack(), récupérer la taille, et supprimer le JLabel de la JFrame? (méthode remove())

  3. #3
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    Si tu n'as pas fixé une taille spécifique au composant (tu peux en fixer une à condition que le layout du container soit null), tu ne pourras pas obtenir la taille avant que le composant ne soit affiché. Par contre, si tu utilises pack(), les composants de la fenêtre sont ajustés à leur taille préférée, donc dans ce cas, tu peux récupérer la taille préférée du JLabel en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dimension taille = label.getPreferredSize();

  4. #4
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    En effet, getPreferredSize ne bouge pas avant et apres pack ! C'est ca que je cherchais, merci !

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 07/05/2006, 11h54
  2. Comment récupérer la taille d'un tableau dynamique ?
    Par Tchaill39 dans le forum Langage
    Réponses: 4
    Dernier message: 08/12/2005, 14h21
  3. Réponses: 3
    Dernier message: 23/01/2004, 21h02

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