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 :

Décorélation des lignes entre le XTable et son model en cas de tri


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 125
    Par défaut Décorélation des lignes entre le XTable et son model en cas de tri
    Bonjour a tous,

    J'ai créé une XTable de plusieurs colonnes. La première colonne contient des infos importantes pour le traitement numérique interne a l'application, mais non utiles pour l'utilisateur. C'est pourquoi je la cache "jXTable.getColumnExt("col1").setVisible(false);".

    Au clic sur le tableau, je souhaite récupérer la valeur de la colonne cachée. Je fais donc un "_modelXTable.getValueAt(la_ligne_courante, 0);"

    Mon problème vient du fait que si je ne trie pas le tableau après sa création, je retrouve bien la valeur en colonne cachée correspondant à la ligne selectionnée, cependant, si j'opère à un tri du tableau (par ordre alphabétique par exemple), alors j'ai l'impression que les valeurs de la colonne cachées sont restées à la même place alors que celles du tableaux ont bougées.

    Comme si le tableau avait été trié, mais pas le model. Du coup, il y a décorélation entre les valeurs du tableau et celles du model.

    Comment dois-je faire pour récupérer les bonnes valeurs en cas de tri ?

    Merci de votre aide.

  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
    En fait, c'est pas compliqué, il y a des méthodes tout prêtes pour ça dans la classe JXTable :

    • convertRowIndexToModel : Convertit l'index à l'affichage vers celui du modèle
    • convertRowToView : Convert l'index du modèle vers celui de l'affichage


    et tu peux aussi faire la même chose avec les colonnes

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 125
    Par défaut
    Super, ca marche nickel, merci bien. Pour ceux qui veulent en faire de même, voici ce que wichtounet a solutionné:

    Pour obtenir la valeur de la case située en colonne 0 du tableau visible et à l'indice de la ligne sélectionnée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String sValeur = jXTable.getValueAt(jXTable.getSelectedRow(),0);
    Pour obtenir la valeur de la case située en colonne 0 du modèle et à l'indice de la ligne sélectionnée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String sValeur = jXTable.getValueAt(jXTable.convertRowIndexToModel(jXTable.getSelectedRow()),0);

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

Discussions similaires

  1. Transferer des lignes entre deux gridviews.
    Par insane_80 dans le forum ASP.NET
    Réponses: 6
    Dernier message: 28/06/2010, 10h35
  2. [XL-2007] supprimer des lignes entre 2 cellules nommées
    Par croky23 dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 22/04/2009, 19h01
  3. déplacer des lignes entre 2 tables access
    Par bellamouna dans le forum VBA Access
    Réponses: 2
    Dernier message: 04/08/2008, 17h31
  4. Réponses: 8
    Dernier message: 29/04/2008, 13h58
  5. Réponses: 6
    Dernier message: 27/04/2007, 22h50

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