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 :

Changer la hauteur des lignes d'un JXTreeTable


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 4
    Par défaut Changer la hauteur des lignes d'un JXTreeTable
    Bonjour,

    Je travaille actuellement sur les composants Swingx, et notamment sur le JXTreeTable.
    Les données sur lesquelles je travaille étant de différents types, j'ai implémenté mes propres CellEditor et CellRenderer. De cette manière, j'ai pu y mettre des JBouton, JCheckBox,...

    Mon problème vient du JTextArea : j'avais dans l'idée qu'utiliser un JTextArea me permettrait de modifier la hauteur des lignes de mon JXTreeTable en fonction de son contenu. Mais c'est apparemment impossible.
    Lorsque je travaillais avec les JTable, j'utilisais la méthode setRowHeight(int row,int Height) qui me permettait de redimensionner chaque ligne, mais cette méthode a été redéfinie dans le JXTreeTable pour ne lever qu'une exception. Après quelques recherches, j'ai appris que cette méthode avait été supprimée à cause du JTree qui ne propose pas cette possibilité.

    Donc voilà mon problème : comment modifier la hauteur de chaque ligne de mon JXTreeTable sans avoir à coder mon propre JTree ?

    Merci pour votre aide

  2. #2
    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
    Une piste serait de faire en sorte de placer le rowHeight général à 0 et d'avoir le TreeCellRenderer possédant une preferredSize correspondant à ce que tu recherches pour chaque ligne.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 4
    Par défaut
    J'ai essayé de modifier la taille du TreeCellrenderer en fonction de mes besoins, mais le problème reste le même : en voulant modifier une ligne, je les modifie toutes.

  4. #4
    Membre Expert 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
    Par défaut
    As-tu essayé :

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 4
    Par défaut
    Je m'y prends peut être mal, mais, malgré plusieurs essais, je ne peux toujours pas redimensionner mes cellules. Même si je tente de modifier le TreeCellRenderer, j'ai l'impression que la JXTreeTable m'empêche de faire ce que je veux.
    Est ce que vous avez déjà réussi à faire ce redimensionnement ?

  6. #6
    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
    Fais voir à quoi ressemble ton TreeCellRenderer?

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 4
    Par défaut
    Voici le code que j'ai utilisé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
      public java.awt.Component getTreeCellRendererComponent(
                        javax.swing.JTree tree, Object value, boolean sel,
                        boolean expanded, boolean leaf, int row,
                        boolean hasFocus) {
     
                    super.getTreeCellRendererComponent(tree, value, sel,                     expanded, leaf, row, hasFocus);
                    tree.setRowHeight(0);
     
                    if (value instanceof TreeTableNode) {
                        TreeTableNode node = (TreeTableNode) value;
                        this.setText(((DefaultUserObject) node.getUserObject()).get(0).toString());
     
                          if (node.isLeaf()) {
                            this.setPreferredSize(new Dimension(20, 20));
                        } 
                         else {
                            this.setPreferredSize(new Dimension(20, 40));
                        }
                    }
     
                    return this;
                }

Discussions similaires

  1. Modification de la hauteur des lignes d'un TCustomTree
    Par Mickey9683 dans le forum C++Builder
    Réponses: 4
    Dernier message: 30/08/2006, 08h59
  2. [VB.NET]Hauteur des lignes d'un listview
    Par olbi dans le forum Windows Forms
    Réponses: 2
    Dernier message: 31/05/2006, 09h01
  3. [HTML] Hauteur des lignes d'un tableau
    Par leloup84 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 06/03/2006, 10h46

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