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

 Java Discussion :

Retirer un élément sélectionné manuellement dans une JList


Sujet :

Java

  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2016
    Messages : 13
    Par défaut Retirer un élément sélectionné manuellement dans une JList
    Bonjour !

    J'aimerais savoir si il existe un moyen de retirer un élement d'une JList, en cliquant dessus puis via un bouton "retirer l'élément". Je m'explique :
    Je possède une JComboBox dans laquelle il y a des items. Lorsque l'on choisi un item et que l'on clique sur le bouton "ajouter" , l'item sélectionné est directement affiché dans la JList. On peut retirer l'élément de la même manière qu'on l'ajoute, c'est à dire en le sélectionnant dans la JComboBox. Cependant, si on a ajouté 3 fois le même item, c'est le premier ajouté qui sera enlevé à ce moment là.
    Bon, pas de problème.
    Sauf que moi, pour chaque item que j'ajoute, il y a une date qui y est associée (on choisit la date avec 3 JComboBox jour mois et année). Du coup si j'ai dans ma JList "Pomme 02/04/2016" et "Pomme 06/07/2016", comment lui préciser quelle pomme je veux enlever ? Avec la méthode énoncée précédemment, il m'enlève toujours le premier élément rentré sans tenir compte de la date associée. Comme je n'ai pas trouvé de moyen de lui dire de retirer un élément qui tient compte à la fois de son nom ET de la date, j'aimerais savoir si il y a une façon de retirer directement un élément en cliquant dessus dans la JList (donc en cliquant sur la ligne il récupère à la fois le nom et la date).

    Je ne sais pas si c'est assez clair mais j'espère que vous comprenez ma demande!

    Merci !

    Lana_

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Quelle est la classe des objets présents dans la JList? Comment est implémentée ta méthode equals?

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2016
    Messages : 13
    Par défaut
    Bonjour,

    Les objets de ma JList sont des chaînes de caractères qui ont au préalable été ajoutés dans la JComboBox. La méthode mouseClicked permet de récupérer l'élément actuellement sélectionné dans la JComboBox et de l'ajouter dans la JList.

    Ce que j'aimerais pouvoir faire en fait c'est que lorsque je choisis deux fois le même item et que je l'ajoute, ça ne me le mette pas deux fois mais une fois avec un compteur. En gros que le programme puisse savoir quels éléments existent déjà dans la JList et faire "+1" ou "-1" en fonction de ça. Sachant que comme un élément est associé à une date, si la date est différente il faut les différencier par contre. Je ne sais pas si c'est possible avec des String.

    Je mets une photo de mon interface actuelle pour que ça soit plus clair (je ne pense pas que mon code sera bien utile pour l'instant mais je peux toujours poster la partie concernée au cas où).

    Nom : aperçu.jpg
Affichages : 292
Taille : 418,4 Ko

    Je suis débutante donc je ne connais pas toutes les méthodes etc, j'apprends un peu par moi même donc peut être que je n'utilise pas ce qui me permettrait d'obtenir le résultat souhaité...

    Merci !

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Tu dois mettre des Objets de ton cru dans la JList, genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public class ItemPanier {
       int nombre;
       String nom;
       Date peremption;
    }
    au lieu d'y mettre des String. Ainsi tu pourra parcourir ta liste et augmenter ou diminuer la valeur de 'nombre'. Ou supprimer l'élément si ça passe à 0.

    Si tu fais juste ça, la JList ne saura pas comment afficher tes items. Tu peux simplement commencer par implémenter "toString" sur ton Objet ItemPanier afin que JList sache comment afficher l'item. toString génèrera une chaine de caractère représentant l'item (nombre, nom, date). C'est le plus simple mais pas le plus propre. Le plus propre c'est d'implémenter un ListCellRenderer pour lui apprendre à dessiner un Item. Là tu pourra même utiliser des icônes ou de la couleur si tu veux. Pour le ListCellRenderer, je te renvoie aux tutoriaux sur DVP, c'est un peu long à expliquer correctement.

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2016
    Messages : 13
    Par défaut
    Merci encore pour cette réponse!

    Cependant, je n'ai pas réussi à résoudre mon problème... J'ai créé une classe ItemPanier dans laquelle j'ai un constructeur par défaut ainsi qu'un constructeur avec nom, date et quantité en argument et enfin une méthode toString qui m'affiche mes paramètres.

    Ce que je ne comprends pas c'est comment gérer ces ItemPanier avec la comboBox et la JList ?
    J'ai créé "ItemPanier Pomme = newItemPanier()" puis j'ai fait "comboBox.addItem(Pomme)", mais du coup ce n'est pas une pomme qui est créée mais un aliment par défaut, ce qui est logique.
    Seulement si je fais "ItemPanier Pomme=new ItemPanier(Pomme, 05/04/16, 5)" je n'aurais que cette possibilité dans ma comboBox, je ne pourrais plus choisir la date correspondant à la pomme que je suis en train d'ajouter à ma liste..

    Je ne sais pas si c'est clair, j'ai peut être loupé une étape mais j'avoue que j'ai un peu du mal à voir comment gérer ce problème. J'aimerais avoir simplement une liste d'aliments dans ma comboBox, pouvoir les sélectionner, rentrer la date de péremption et la quantité à l'aide de 4 autres comboBox puis pouvoir jouer sur la quantité par la suite (en tenant compte de la date de péremption et du nom de l'aliment pour l'ajout ou le retrait).

    Merci d'avoir pris le temps en tout cas!

    Lana

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Tou dépend, estce que Pomme 21/2/2016 et Pomme 22/2/2016 doivent être des entrées différentes de la JList ou pas? Si oui, tu crée un nouveau ItemPanier avec cette Pomme et cette date. Sinon tu change les valeurs dans l'item existant et tu rafraichis la JList.

Discussions similaires

  1. Réponses: 7
    Dernier message: 16/03/2015, 13h37
  2. Ajout d'un élément dans une JList
    Par michaeljeru dans le forum Composants
    Réponses: 4
    Dernier message: 03/03/2009, 14h40
  3. Recherche d'éléments dans une JList
    Par Goupsy dans le forum Composants
    Réponses: 2
    Dernier message: 05/08/2008, 15h12
  4. sélectionner un élément par défaut dans une liste déroulante
    Par touf35 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 03/06/2008, 18h08
  5. supprimer un élément dans une JList
    Par ZeRouxXx dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 18/04/2008, 15h08

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