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 :

[JTree] taille de l'affichage du texte d'un noeud


Sujet :

Composants Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 44
    Points : 33
    Points
    33
    Par défaut [JTree] taille de l'affichage du texte d'un noeud
    Bonjour,

    Je souhaite modifier l'affichage du texte des noeuds d'un JTree suite à la traduction de ces derniers.

    Lors de mon changement de traduction, je modifie le texte renvoyé par la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public String toString(){}
    des UserObject de chaque noeud de mon arbre.

    Tout fonctionne à part dans le cas où le texte de la nouvelle traduction dépasse la taille du texte de l'ancienne traduction, il n'est pas affiché entièrement (se termine par '...') même si il y a de la place pour l'affichage.

    En recréant complètement l'arbre ça fonctionne mais j'aimerais savoir s'il y a un autre moyen que celui là de s'en sortir.

    J'ai aussi pensé au DefaultTreeCellRenderer qui pourrait recalculer la largeur du texte à chaque fois que l'arbre est redessiné, mais je crains que ce soit une méthode un peu brutale.

    Merci d'avance pour vos avis sur la question.
    Sophie.

  2. #2
    Membre averti
    Avatar de Chatanga
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 211
    Points : 346
    Points
    346
    Par défaut
    Ne suffit pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    node.setUserObject(userObject);
    // ...
    userObject.setValue("nouvelle traduction");
    Ne suffit pas non plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    node.setUserObject(userObject);
    // ...
    userObject.setValue("nouvelle traduction");
    node.setUserObject(userObject);
    Doit fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    node.setUserObject(userObject);
    // ...
    userObject.setValue("nouvelle traduction");
    treeModel.nodeChanged(node);
    De manière générale, les notifications faites à chaud sur un TreeModel doivent être dûment notifiées à coups de nodesWereRemoved, nodesWereInserted, nodeChanged, etc. Forcer un simple redessinement d'une vue ne suffit pas.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 44
    Points : 33
    Points
    33
    Par défaut
    Merci Chatanga pour cette info.
    Mon problème est apparemment résolu.

    Sophie

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 08/06/2009, 11h30
  2. Affichage de texte
    Par Yellowmat dans le forum OpenGL
    Réponses: 2
    Dernier message: 15/12/2004, 12h25
  3. [C#] Affichage de texte vertical...
    Par AntiSAL dans le forum Windows Forms
    Réponses: 6
    Dernier message: 10/06/2004, 14h46
  4. Affichage de texte est mise à jour de l'écran
    Par Galdor_sp dans le forum OpenGL
    Réponses: 3
    Dernier message: 14/03/2004, 22h31
  5. [MX 2004] Affichage du texte dynamique
    Par caramel dans le forum Flash
    Réponses: 8
    Dernier message: 29/01/2004, 16h07

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