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

Composants Java Discussion :

Hauteur variable des lignes d'un JTree


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    lvr
    lvr est déconnecté
    Membre éclairé Avatar de lvr
    Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2006
    Messages
    920
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2006
    Messages : 920
    Par défaut Hauteur variable des lignes d'un JTree
    Bonjour,

    J'utilise un JPanel comme renderer du mon JTree. La hauteur du panel varie d'une ligne à l'autre. Je connais la hauteur du panel en écrivant
    renderer.layout.minimumLayoutSize(this)

    J'ai indiqué au JTree que ses lignes auraient une hauteur variable en écrivant
    tree.setRowHeight(-1);

    Et la doc enchaine en disant: "If the specified value is less than or equal to zero the current cell renderer is queried for each row's height."

    Ma question est: comment ? Comment dois-je indiquer que la hauteur de ma ligne vaut la hauteur du panel ? J'ai essayé avec un setPreferredSize, setSize sans résultat.

    J'attends avec impatience vos suggestions ! !

    PS: Ce qui complique peut-être les choses, c'est que la hauteur du panel varie suivant que la ligne soit sélectionnée ou pas.

  2. #2
    lvr
    lvr est déconnecté
    Membre éclairé Avatar de lvr
    Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2006
    Messages
    920
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2006
    Messages : 920
    Par défaut
    C'est si compliqué que ça ? Ou au contraire tellement trivial ?

  3. #3
    lvr
    lvr est déconnecté
    Membre éclairé Avatar de lvr
    Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2006
    Messages
    920
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2006
    Messages : 920
    Par défaut
    Up please, je suis complètemment

  4. #4
    Membre éprouvé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Avril 2003
    Messages : 79
    Par défaut
    En fait, il faut que tu crée une classe implémentant l'interface
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javax.swing.tree.TreeCellRenderer
    Cette classe te permet de définir comment tu affiches une "ligne" de ton tree (dont la hauteur)

    il te suffit ensuite de preciser à ton tree d'utiliser ce renderer avec l'instruction suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myTree.setCellRenderer(myRenderer);

  5. #5
    lvr
    lvr est déconnecté
    Membre éclairé Avatar de lvr
    Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2006
    Messages
    920
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2006
    Messages : 920
    Par défaut
    C'est ce que je fais !
    La question, c'est comment dans mon TreeCellRender indiquer sa hauteur.

    Comme je l'indique dans mon 1er message, j'ai essayé plus trucs dont
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    renderer.setPreferredSize(...)
    mais ça ne fonctionne pas.

  6. #6
    Membre éprouvé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Avril 2003
    Messages : 79
    Par défaut
    Bonjour, désolé pour la réponse tardive mais j'étai très occupé.

    Je pense que tu n'as pas compris le principe du renderer. Car je vois que tu essayes de lui attribuer une taille. Le renderer te permet de "dessiner" le contenu de ta ligne.

    pour cela tu dois créer ton propre renderer et implementer la méthode

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public Component getTreeCellRendererComponent(JTree tree,
                                                  Object value,
                                                  boolean selected,
                                                  boolean expanded,
                                                  boolean leaf,
                                                  int row,
                                                  boolean hasFocus)
    Cette méthode renvoie comme resultat un composant graphique qui correspond à la ligne spécifiée par le paramètre row.

    Par exemple pour afficher une ligne aux dimensions voulues :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public Component getTreeCellRendererComponent(JTree tree,
                                                  Object value,
                                                  boolean selected,
                                                  boolean expanded,
                                                  boolean leaf,
                                                  int row,
                                                  boolean hasFocus)
    {
              JLabel myLabel = new myLabel(String.valueOf(row));
              myLabel.setPreferredSize(...)
              return myLabel
    }

Discussions similaires

  1. [AC-2000] Hauteur variable des champs d'un état
    Par Gabout dans le forum IHM
    Réponses: 5
    Dernier message: 16/05/2010, 20h35
  2. ÉTAT : hauteur relative des lignes
    Par louroulou dans le forum IHM
    Réponses: 3
    Dernier message: 11/08/2008, 23h09
  3. [2.2.1.1] CrossTab : hauteur/masquage des lignes ?
    Par sylvak31 dans le forum BIRT
    Réponses: 2
    Dernier message: 04/07/2008, 14h26
  4. [VBA-E] Hauteur automatique des lignes pour cellules fusionnées
    Par Couettecouette dans le forum Contribuez
    Réponses: 0
    Dernier message: 18/10/2007, 15h45
  5. Hauteur automatique des lignes pour cellules fusionnées
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 18/10/2007, 11h02

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