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 :

Obtenir la taille d'un composant d'affichage Swing


Sujet :

AWT/Swing Java

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 38
    Points : 22
    Points
    22
    Par défaut Obtenir la taille d'un composant d'affichage Swing
    Bonjour,

    Je viens de parcourir le forum à la recherche de personne ayant eu a obtenir la taille d'un composant Swing et je n'ai rien trouvé.

    J'explique mon problème : j'utilise dans une JTable des Jpanel et des JButton comme renderer. Mon Problème est d'affecter la bonne taille a mes rangées.

    Pour celà il me faut la taille de mes JPanel et de mes JButton.

    J'ai essayé : getHeight, getSize et getBounds qui me retourne tous la taille 0.

    Une idée ?

    Merci.

  2. #2
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Citation Envoyé par jbwan
    Bonjour,

    Je viens de parcourir le forum à la recherche de personne ayant eu a obtenir la taille d'un composant Swing et je n'ai rien trouvé.

    J'explique mon problème : j'utilise dans une JTable des Jpanel et des JButton comme renderer. Mon Problème est d'affecter la bonne taille a mes rangées.

    Pour celà il me faut la taille de mes JPanel et de mes JButton.

    J'ai essayé : getHeight, getSize et getBounds qui me retourne tous la taille 0.

    Une idée ?

    Merci.
    Tes composants n'ont une taille qu'une fois qu'ils sont affichés à l'écran...

    Fais donc des getSize() une fois que tu as fait un .setVisible(true) sur ta frame

    (PS: il n'y a pas de pack() pour les tables?)

  3. #3
    Membre averti Avatar de nicotine002
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 577
    Points : 409
    Points
    409
    Par défaut
    De plus je crois que tu récupère çà sous forme de Dimension.

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Citation Envoyé par ®om
    (PS: il n'y a pas de pack() pour les tables?)
    Non il n'y en a pas sur la JTable (la JXTable par contre l'implémente)
    Pour y remédier: http://javaalmanac.com/egs/javax.swi...Col.html?l=new ou comme ceci: http://javaalmanac.com/egs/javax.swi...Col.html?l=new

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 82
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par ®om
    Tes composants n'ont une taille qu'une fois qu'ils sont affichés à l'écran...

    Fais donc des getSize() une fois que tu as fait un .setVisible(true) sur ta frame

    (PS: il n'y a pas de pack() pour les tables?)


    J'ajouterais quand plus il faut etre sorti de la "procédure" avant de faire ton getsize();

    R

  6. #6
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 38
    Points : 22
    Points
    22
    Par défaut
    Merci déjà pour vos réponses, c'est bête mais je me sens moins seul ... ^^

    Alors pour le getSize après le setVisible() c'est exacte, mais je n'ai plus accès à mes composants a ce moment là pour les atteindres avec le getSize...

    Pour JXTable j'ai un soucis car visiblement elle ne gère pas la combinaison de cellule. C'est pour celà que j'utilise le code des deux derniers exemples :
    http://www.crionics.com/products/ope...Examples4.html
    Il doit bien y avoir un moment ou la taille est calculé ne serait ce que pour la disposition dans les layouts (j'utilise un flowLayout dans mes panels) ?

  7. #7
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 38
    Points : 22
    Points
    22
    Par défaut
    Encore un petit message.

    On peut vraiment faire un .pack() avec JXTable ?

    Parce que je n'y arrive pas.

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Non en fait la méthode s'appelle packAll()

  9. #9
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 38
    Points : 22
    Points
    22
    Par défaut
    Alors je doit être bigleux... Je ne la voit pas (dans la javadoc). Elle s'applique sur quel objet ?

  10. #10
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Citation Envoyé par jbwan
    Alors je doit être bigleux... Je ne la voit pas (dans la javadoc). Elle s'applique sur quel objet ?
    La méthode packAll est seulement pour les JXTable.

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    à partir d'une certaine version de SwingX (0.7 c'est sûr, avant je ne sais pas)

  12. #12
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 38
    Points : 22
    Points
    22
    Par défaut
    Ok j'ai trouvé ... ^^ je n'avait pas la bonne version de swingX (merci pour vos précisions)

    Par contre le packAll() ne joue que sur la la rgeur des colonnes non ?
    A priori il ne prend pas en compte les renderers de cellule d'un point de vue hauteur ?


    Je me trompe ?

Discussions similaires

  1. Réponses: 8
    Dernier message: 13/06/2005, 13h48
  2. Taille d'un composant dans un JTabbedPane
    Par bischof dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 18/04/2005, 18h13
  3. Réponses: 9
    Dernier message: 13/04/2005, 10h15
  4. [DOS] Obtenir la taille du fichier
    Par Amélie Ladoque dans le forum Windows
    Réponses: 2
    Dernier message: 15/02/2005, 12h33
  5. [Swing] Ecouteur pour la taille d'un composant ?
    Par Pill_S dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 18/01/2005, 18h14

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