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 :

[JXTable] couleur et tri


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de grabriel
    Inscrit en
    Septembre 2006
    Messages
    946
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 946
    Par défaut [JXTable] couleur et tri
    Salut,

    J'ai un petit problème avec mes JXTable, sur lesquels j'ai appliqué un tableCellrenderer pour colorier les lignes de différentes couleur suivant le contenu d'une colonne caché. Tout ceci fonctionne très bien.

    Sauf que lorsque je fais un tri la couleur reste à la même place, elle ne suis pas ligne. Un petit exemple vaut mieux qu'un grand discours.

    La col2 est cachée.
    _______________
    | col1 | col2 |
    |---------------|
    | ValA | Vert | <==== cette ligne est colorié en vert
    |---------------|
    | ValB | Vert | <==== encore du vert
    |---------------|
    | ValC | Vert | <==== ici aussi du vert
    |---------------|
    | Val1 | Rouge | <==== cette ligne est colorié en rouge
    |---------------|
    | Val2 | Rouge | <==== encore du rouge
    |_____|_______|

    Si je filtre la col1 j'ai ce résultat

    _______________
    | col1 | col2 |
    |---------------|
    | Val1 | Rouge | <==== cette ligne est colorié en vert
    |---------------|
    | Val2 | Rouge | <==== encore du vert
    |---------------|
    | ValA | Vert | <==== ici aussi du vert
    |---------------|
    | ValB | Vert | <==== cette ligne est colorié en rouge
    |---------------|
    | ValC | Vert | <==== encore du rouge
    |_____|_______|

    Donc voila mon problème mes valeurs changent de place mais la couleur ne suis pas je ne voie pas comment faire, ou quoi appeler pour que le tableau se "recolorifie" avec les bonnes valeur.

    Si je comprends le principe je devrai relancer le cellrenderer pour qu'il repaigne mon tableau aux nouvelles couleurs. Voila le principe mais la pratique je suis perdu.

    Merci.

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

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Tu es sûr de bien vérifier les bons index ? Avec la JXTable, il faut faire attention, car on a l'index dans le modèle qui ne change pas et l'index qui peut changer.

    Ton problème ressemble assez à ça. Essaie de voir dans la JXTable, il doit y avoir des méthodes convertXXX pour changer un index de la vue en index de modèle.

  3. #3
    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
    Utilises plutôt le principe des Highlighters SwingX plutôt que des Renderers à la sauce Swing.

    Dans ton cas le mieux serait un CoumpoundHiglighter créé à partir d'une liste de ColorHighlighter ayant chacun un predicate de type HighlighterPredicate.EqualsHighlightPredicate

  4. #4
    Membre éclairé Avatar de grabriel
    Inscrit en
    Septembre 2006
    Messages
    946
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 946
    Par défaut
    Citation Envoyé par wichtounet
    Tu es sûr de bien vérifier les bons index ? Avec la JXTable, il faut faire attention, car on a l'index dans le modèle qui ne change pas et l'index qui peut changer.

    Ton problème ressemble assez à ça. Essaie de voir dans la JXTable, il doit y avoir des méthodes convertXXX pour changer un index de la vue en index de modèle.

    J'utilise le convertxxx pour gérer le clique droit sur ma table pour modifier des lignes et mes index sont bien à jour...

    Le problème doit plus venir de mon renderer je l'applique une fois à la construction et après forcément j'ai pas d'écouteur et il ne se mets pas à jour par raport au contenu de ma table, qui lui change. Je pense que le problème doit venir de la... j'ai essayé de mettre tout type de listener sur ma table pour qu'il réagisse au ré-ordonnancement et qu'il réapplique le renderrer mais sans succès.

    Utilises plutôt le principe des HighLighters SwingX plutôt que des Renderers à la sauce Swing.
    Je vais essaye ca, merci pour les liens.
    Faudrait que je cherche plus en profondeur dans la doc de swingx et sur le forum de java.net avant de poser mes questions.

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

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Citation Envoyé par grabriel
    Le problème doit plus venir de mon renderer je l'applique une fois à la construction et après forcément j'ai pas d'écouteur et il ne se mets pas à jour par raport au contenu de ma table, qui lui change. Je pense que le problème doit venir de la... j'ai essayé de mettre tout type de listener sur ma table pour qu'il réagisse au ré-ordonnancement et qu'il réapplique le renderrer mais sans succès.
    Ben justement, dans ton renderer, comment est-ce que tu fais pour définir s'il faut colorier la ligne ou pas ? Tu vas chercher dans le modèle si la colonne x est bien bonne, c'est ca ? Alors, il faut aussi convertir l'index visible en index de modèle...

  6. #6
    Membre éclairé Avatar de grabriel
    Inscrit en
    Septembre 2006
    Messages
    946
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 946
    Par défaut
    Ben justement, dans ton renderer, comment est-ce que tu fais pour définir s'il faut colorier la ligne ou pas ? Tu vas chercher dans le modèle si la colonne x est bien bonne, c'est ca ? Alors, il faut aussi convertir l'index visible en index de modèle...
    Yahhhhh!! désolé j'avais pas compris j'étais bloqué sur appliquer un listener, j'ai rajouté le convertxxx dans mon renderer, ca marche!

    Merci

    Je vais comme voir pour passer au highlight... un jour, ou il y'aura plus de doc et d'exemples tout fait, que j'ai plus qu'a recopier... désolé je suis feignéant.

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

Discussions similaires

  1. [JXTable] pagination et tri des données
    Par cisco dans le forum Composants
    Réponses: 0
    Dernier message: 08/01/2009, 10h32
  2. JXtable recupération du tri
    Par Lady dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 15/10/2007, 09h44
  3. Couleur d'une ligne d'un JXTable !
    Par fabred dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 06/06/2007, 16h35
  4. tri sur JXTABLE
    Par foubou dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 18/05/2007, 00h54
  5. [JXTable]Gérer tri + accès aux données ?
    Par Baptiste Wicht dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 29/05/2006, 13h24

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