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 avec case à cocher: utilisation d'une Hashmap ou deux List (ou autre)?


Sujet :

Composants Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 287
    Points : 100
    Points
    100
    Par défaut Jtable avec case à cocher: utilisation d'une Hashmap ou deux List (ou autre)?
    Bonjour,

    J'ai une Jtable contenant 3 colonnes:
    la 1ere contenant un objet (Personne par exemple). Cette colonne n'est pas visible et ne sert qu'à récupérer facilement l'objet.
    la 2nd contenant une case à cocher, permettant à l'utilisateur de sélectionner les Personnes qu'il souhaite inclure dans un traitement.
    la 3em contenant le nom et prénom de la personne.

    Jusqu'à aujourd'hui pour gérer ces données j'utilisais 2 List: une de Personne et une de Boolean construite en parallèle de celle des Personnes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for (Personne personne: listPersonne){
       listBoolean.add(false);
    }
    Mais maintenant je me dis que ce n'est pas la meilleure des solutions et qu'une HashMap<Personne,Boolean> et peut être plus appropriée. Le problème est qu'avec une HashMap il n'est pas possible de récupérer une Key en passant un n°index et donc la re-définition de la méthode getValueAt(int rowIndex, int columnIndex) de la class de type AbstractTableModel n'est pas possible (ou assez crade en passant par un KeySet).

    Mes explications sont très certainement lourdes, voir incompréhensible (), je résumerais donc mon problème par: quelle est le moyen le plus efficace, le plus "propre" pour construire/gérer une Jtable contenant Boolean (case à cocher) et Objet?

    Merci d'avance

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Tu peux soit, garder tes deux listes.
    Il n'y pas trop de problème avec cela, si les index sont les mêmes.

    Tu peux aussi ajouter une propriété isSelected dans ton objet Personne, mais là, tu mélanges vue et données, ce qui n'est pas top.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 287
    Points : 100
    Points
    100
    Par défaut
    En fait c'est le fait de gérer 2 données liées (Personne/boolean) dans 2 objets qui ne le sont pas (les listes) qui me dérange. Une version un peu plus propre existerait-elle?
    Pour ma part j'ai penché pour l'utilisation d'une liste... et d'une HashMap La liste stockant les Personnes et la Hahmap le couple Personne/Boolean. Comme ça je peux récupérer une Personne par un n° d'index (pour rappel utilisé par la méthode getValueAt(int row)) ainsi que son boolean associé. De même pour la modification de la valeur du boolean, cela simplifie les chose (par rapport à 2 listes): un simple put(Personne,boolean) sur la Hashmap et c'est OK.

    Je sais que je pars un peu dans tous les sens, mais cela fait 3 ans que je développe en Java et n'ayant pas eu de véritable formation, je crain d'avoir pris de mauvaises habitudes de dev.

Discussions similaires

  1. Copier un enregistrement d'une table vers une autre avec case à cocher
    Par myrddin99 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 01/05/2012, 11h44
  2. Réponses: 2
    Dernier message: 20/03/2012, 16h43
  3. [XL-2007] Modification d'une cellule avec case à cocher
    Par bogue dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 08/08/2011, 08h36
  4. [MySQL] Réalisation d'une liste avec case à cocher
    Par Lunedora87 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 29/04/2009, 11h47
  5. Réponses: 3
    Dernier message: 20/04/2007, 11h20

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