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 :

[Swing]Problème d'affichage sur un JTree


Sujet :

Composants Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 167
    Points : 120
    Points
    120
    Par défaut [Swing]Problème d'affichage sur un JTree
    Bonjour,
    Je pensais avoir fais le tour des subtilitées JTree...mais non...je viens de découvrir un bug sur mon appli mais je sais pas comment le corriger...

    En fait, j'ai un JTree qui m'affiche mes composants (classes perso avec une méthode toString dedans pour affichage)

    Je travail sur les objets affichés dans mon JTree, c'est à dire, quand je modifie par exemple le nom de mon objet, et bien le libellé affiché dans le JTree se modifie a son tour, sans que j'ai de repaint a faire...
    Dans une appli précèdente, cette même méthode fonctionnait parfaitement...
    Mais désormais je suis confronté a un problème....quand je rajoute des caractères au nom de mon objet (attribut utilisé dans le toString) eh bien, il me coupe mon mot avec des ...

    Par exemple si le nom est : 'constante 1' et que je le change en 'constante 12' ben dans mon JTree ca donne un truc du genre 'const...'

    Mon Jtree est dans un splitpanel, avec un renderer....j'ai désactivé le renderer pour voir s'il ce n'était pas lui qui causé le prob...ben c'est pas lui...
    Alors je ne sais pas à quoi cela peu être du...
    Le plus troublant, c'est que quand je ferme mon appli et que je la relance...la il m'affiche mon objet, avec son nouveau nom, sans les '...'

    Je me demande si ce n'est pas un problème de rafraichissement de mon arbre...

    Si quelqu'un a la moindre idée, je suis preneur!

    Merci d'avance

  2. #2
    Membre averti Avatar de biozaxx
    Profil pro
    Inscrit en
    Août 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 403
    Points : 375
    Points
    375
    Par défaut
    salut,

    ton renderer c'est une classe a toi ?
    elle implemente TreeCellRenderer ou bien elle étend DefaultTreeCellRenderer ?

    car j'ai eu le meme probleme il y a plusieurs mois:
    J'ai mon label qui etait coupé (...) et il me semble bien que c'etait due au renderer.
    J'utilisais une methode qui implementait TreeCellRenderer et il me semble que j'ai résolu le probleme en modifiant la classe de facon à étendre DefaultTreeCellRenderer.....

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 167
    Points : 120
    Points
    120
    Par défaut
    Et bien, le rendere c'est une classe a moi, qui implemente DefaultTreeCellRenderer...
    Mais pour tester, j'ai virer le morceau de code qui lie le renderer au JTree, de manière à utiliser le renderer par défaut....et le problème persiste...
    Je me demande si c'est pas le rafraichissement de l'arbre qui provoque ca...
    Et comme la méthode de rafraichissement n'est pas appellé directement par moi...je sais pas comment faire pour controler...

    En tout cas, merci pour ta réponse...si quelqu'un a d'autres idées, merci d'avance!

  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
    Peut etre un setSize() sur le Container qui contient le JTree, ou un pack() sur la JFrame ? Selon tes layouts, il faut faire l'un ou bien l'autre.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 167
    Points : 120
    Points
    120
    Par défaut
    Bon, pour ceux que ca intéresse...j'ai trouvé la solution qui règle mon problème...
    Lors de la mise a jour du nom de mon objet, je provoque un rafraichissement du noeud de mon arbre...et le problème disparait...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public void refresh_node_courant(){
            //System.out.println("refresh");
            DefaultMutableTreeNode node = (DefaultMutableTreeNode)                
            this.getLastSelectedPathComponent();
            ((DefaultTreeModel)this.getModel()).nodeStructureChanged((TreeNode)node);
        }

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

Discussions similaires

  1. Gros problèmes d'affichage sur écran 16/9
    Par slylafone dans le forum C++Builder
    Réponses: 7
    Dernier message: 25/07/2006, 09h33
  2. Problème d'affichage sur formulaire
    Par PAUL87 dans le forum Access
    Réponses: 3
    Dernier message: 27/06/2006, 23h08
  3. [Swing] Problème d'affichage dans un JScrollPane
    Par Adrien22 dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 05/04/2006, 14h36
  4. Problème d'affichage sur un écran 16/9ème
    Par kurul1 dans le forum C++Builder
    Réponses: 2
    Dernier message: 23/01/2006, 11h51
  5. [Swing] problème d'affichage
    Par l'obstiné dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 21/08/2004, 18h05

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