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 :

JTable récupération d'un objet


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 17
    Par défaut JTable récupération d'un objet
    Bonjour à toutes et tous,

    Voici mon problème.
    J'aimerais pouvoir récupérer des objets à partir du TableModel associé à une JTable.

    Actuellement je remplis le TableModel avec les informations de l'objet que j'ai envie d'afficher. (J'ai une méthode getElementAAfficher et pour chaque objet je récupère un vecteur contenant les informations et je les ajoute au TableModel).

    Lorsque je veux récupérer l'objet associé à une ligne, je dois faire des tests sur le contenu des cellules de la ligne sélectionnées afin de récupérer l'objet dans un vecteur.

    Ce n'est pas très élégant.

    Existe t'il une façon de remplir le TableModel avec des objets et de spécifier les éléments que l'on veut voir affichés?

    J'espère avoir été plus ou moins clair

    Merci d'avance.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 75
    Par défaut
    Oui, il te "suffit" de créer ton propre TableModel (etendre le AbstractTableModel et faire l'interpolation entre ton objet et le model swing)

    Louis

  3. #3
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 17
    Par défaut
    Merci pour ta réponse.

    Je viens de jeter un bref coup d'oeil sur les interpolations mais je ne vois pas tout à fait à quoi ça pourrait servir dans le cas qui me concerne.

    Je n'ai jamais utilisé d'interpolation. Si tu pouvais éventuellement éclairer ma lanterne ce sera bien sympathique.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 75
    Par défaut
    Je n'ai pas été trés clair (voir obscure ) il ne s'agissait pas d'une interpolation au sens mathématique strict.

    Ce que je voulais par là :
    Tu as d'un côté une collection d'objet
    De l'autre tu dois fournir un TableModel qui correspond à ces données (méthodes getValueAt...)
    Et tu veux obtenir directement pour une ligne donnée l'objet réel.

    Donc tu créer ton TotoTableModel qui etend AbstractTableModel.
    Qui va directement interroger ta collection Toto (c'est pour l'exemple ) lors des appel getValue...
    Et qui a tes propres méthodes Toto getToto(int row)....

    Donc ton TotoTableModel "interpole" ta collection de Toto.

    Si tu as souvent besoin de ce genre de choses il serait intéressant de faire cela de manière dynamique grâce à la réflexivité (voir http://ricky81.developpez.com/tutori...i/reflection/).

    J'espère avoir été un peu plus comprehensible.

    Louis

  5. #5
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 17
    Par défaut
    Merci pour ta réponse.

    Je vois mieux maintenant. Ca répond à ma question en ce qui concerne la récupération de l'objet lié à la ligne.

    Maintenant la question que je me pose, c'est si à partir du TableModel on peut spécifier les informations que l'on veut voir affichées dans la JTable.

    J'ai envie de passer une collection d'objets au TableModel.
    Ces objets possèdent des propriétés qui pour certaines doivent être affichées dans la JTable et pour d'autres non.

    Sait-on faire cela à partir du TableModel?

    En utilisant un CellRenderer il y aurait moyen de faire ça mais c'est, à mon sens, du bricolage.

    Merci d'avance.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 75
    Par défaut
    Il doit y avoir plusieurs solutions, en voila une :
    Dans les méthodes :
    - getRowCount => renvoyer : le nombre de colonnes de ton objet - nb à cacher (soit le nombre réel à afficher)
    - getValueAt => prendre à considération les colonnes que tu veux réellement afficher.

    ==> cela revient à ne "mapper" que les éléments dont tu as "besoin"

    Sinon jettes un oeil sur les JXTable (SwingLabs), elles sont très sympa (mais c'est du proto)

    Louis

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/02/2008, 20h32
  2. Réponses: 4
    Dernier message: 29/06/2007, 11h17
  3. [JTable] Récupération de la valeur saisie
    Par grabriel dans le forum Composants
    Réponses: 2
    Dernier message: 04/06/2007, 18h06
  4. Récupération d'un objet d'une hashtable
    Par yazman dans le forum C#
    Réponses: 2
    Dernier message: 03/05/2007, 16h13
  5. [SWING~JTable] Récupération d'un KeyListener
    Par JMLLB dans le forum Composants
    Réponses: 2
    Dernier message: 27/03/2007, 09h32

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