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 :

changer l'indice d'une JList


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2010
    Messages : 2
    Par défaut changer l'indice d'une JList
    Bonjour,
    J'essaie depuis un moment de mettre des données dans une JList. Données qui viennent d'une base mySQL.

    J'aimerai afficher le nom, prénom du client mais j'aimerai mettre le numéro du client comme indice. Comme ça, dès que je sélectionne un client dans ma JList, il peut effectuer une autre requête d'après le client sélectionné.

    Apparemment je ne peux pas faire un setListData avec un ArrayList qui a des indices. Pour faire simple :

    ArrayList liste= new ArrayList();

    liste.add(1, "Client 1");
    liste.add(3, "Client 3");

    liste_patients.setListData(liste.toArray());
    par contre si je mets
    ArrayList liste= new ArrayList();

    liste.add("Client 1");
    liste.add("Client 3");

    liste_patients.setListData(liste.toArray());
    Ca fonctionne mais c'est pas ce que je veux.

    Bref, si vous avez compris ce que je souhaite et que vous avez une solution merci de m'aider.

    Salutations à tous.

    ps:j'ai déjà chercher à mille endroit sur le net et je m'arrache les cheveux depuis le début de l'après-midi. Il me semble pas que le sujet ait été abordé.

  2. #2
    Membre émérite Avatar de fraco
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 750
    Par défaut
    deux possibilités parmi d'autres :

    avoir deux listes telles que si le client 3 est à la ligne x de listeNoms, son n° de client est à la même ligne x de listeNum...

    ou (sûrement) mieux :

    définir un objet monObjet contenant un int et un String, créer une liste de monObjet et getNum = son numéro, getNom = son nom...

    bonne chance !

  3. #3
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 27
    Par défaut
    Je pense que le plus simple est d'effectivement créer un objet Client avec un int et un string en attribut et les getters and setters qui vont avec.

    Ensuite si tu veux que ça soit trié automatiquement ta classe client peut implémtenter la classe Comparable en utilisant le numéro de client.

    La classe client:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    public class Client implements Comparable<Client>{
        private Integer id;
        private String nom;
     
        public Client(int id, String nom) {
            this.id = id;
            this.nom = nom;
        }
     
     
     
        public int getId() {
            return id;
        }
     
        public void setId(int id) {
            this.id = id;
        }
     
        public String getNom() {
            return nom;
        }
     
        public void setNom(String nom) {
            this.nom = nom;
        }
     
        public int compareTo(Client o) {
             return id.compareTo(o.getId());
        }

    Et pour le tri de la liste:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ArrayList<Client> liste= new ArrayList<Client>();
     
    Client client1 = new Client(1, "Client1");
    Client client3 = new Client(2, "Client3");
     
    liste.add(client3); //l'ordre importe peu
    liste.add(client1);
     
    Collections.sort(liste);
     
    liste_patients.setListData(liste.toArray());

  4. #4
    lvr
    lvr est déconnecté
    Membre éclairé Avatar de lvr
    Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2006
    Messages
    920
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2006
    Messages : 920
    Par défaut
    Tu peux en plus définir un ListCellRenderer qui te permettra d'afficher correctement ton client dans la liste.

Discussions similaires

  1. Changer l'ordre des éléments d'une JList avec la souris
    Par rafalsh dans le forum Composants
    Réponses: 0
    Dernier message: 02/07/2009, 20h13
  2. Changer l'affichage d'une JList
    Par jeanGuignol dans le forum Composants
    Réponses: 2
    Dernier message: 29/09/2008, 10h23
  3. [VB6]Changer la couleur d'une ligne d'un ListView
    Par Troopers dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 14/03/2003, 17h02
  4. Changer l'icône d'une fenêtre à partir d'un .res
    Par henderson dans le forum C++Builder
    Réponses: 8
    Dernier message: 11/03/2003, 10h48
  5. Changer l'image d'une texture
    Par alltech dans le forum DirectX
    Réponses: 5
    Dernier message: 21/08/2002, 01h31

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