[JAVA] Doublons Jcombobox
Fermé
kiwi2910
Messages postés
10
Date d'inscription
dimanche 25 février 2007
Statut
Membre
Dernière intervention
3 mars 2007
-
26 févr. 2007 à 18:39
kiwi2910 Messages postés 10 Date d'inscription dimanche 25 février 2007 Statut Membre Dernière intervention 3 mars 2007 - 27 févr. 2007 à 18:37
kiwi2910 Messages postés 10 Date d'inscription dimanche 25 février 2007 Statut Membre Dernière intervention 3 mars 2007 - 27 févr. 2007 à 18:37
A voir également:
- [JAVA] Doublons Jcombobox
- Waptrick java football - Télécharger - Jeux vidéo
- Supprimer les doublons excel - Guide
- Java apk - Télécharger - Langages
- Doublons photos - Guide
- Jeux java itel football - Télécharger - Jeux vidéo
3 réponses
choubaka
Messages postés
39375
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
14 avril 2024
2 100
27 févr. 2007 à 12:58
27 févr. 2007 à 12:58
salut
comment et avec quoi remplis-tu ce JComboBox ..
?????
comment et avec quoi remplis-tu ce JComboBox ..
?????
Utilisateur anonyme
27 févr. 2007 à 16:52
27 févr. 2007 à 16:52
Salut!
Si tu ne veux pas de doublons, le mieux est d'utiliser un java.util.Set plutôt qu'une java.util.List pour stocker tes données.
Je pense que ton problème vient de là.
Teste la classe ci-dessous qui utilise 2 JComboBox.
Le première extrait les données à afficher d'un Set, l'autre d'une List.
Tu peux remarquer que malgré qu'on a ajouté plusieurs fois la même donnée au Set, elle n'apparaît qu'une seule fois.
;-)
HackTrack
Si tu ne veux pas de doublons, le mieux est d'utiliser un java.util.Set plutôt qu'une java.util.List pour stocker tes données.
Je pense que ton problème vient de là.
Teste la classe ci-dessous qui utilise 2 JComboBox.
Le première extrait les données à afficher d'un Set, l'autre d'une List.
Tu peux remarquer que malgré qu'on a ajouté plusieurs fois la même donnée au Set, elle n'apparaît qu'une seule fois.
/* * Created on 27-févr.-2007 * Author: HackTrack */ package comboDoubleEntriesRemove; import java.awt.Dimension; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; import javax.swing.DefaultComboBoxModel; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JPanel; public class SingleEntryComboTester extends JFrame { private JComboBox combo1; private JComboBox combo2; private DefaultComboBoxModel comboModel1; private DefaultComboBoxModel comboModel2; public SingleEntryComboTester() { super("Demo"); initialize(); } private void initialize() { setDefaultCloseOperation(EXIT_ON_CLOSE); JPanel panel = new JPanel(); panel.setPreferredSize(new Dimension(320,200)); comboModel1 = new DefaultComboBoxModel(); comboModel2 = new DefaultComboBoxModel(); combo1=new JComboBox(); combo2=new JComboBox(); combo1.setModel(comboModel1); combo2.setModel(comboModel2); panel.add(combo1); panel.add(combo2); getContentPane().add(panel); } public void setFirstComboData(Set data) { comboModel1= new DefaultComboBoxModel(data.toArray()); combo1.setModel(comboModel1); validate(); } public void setSecondComboData(List data) { comboModel2 = new DefaultComboBoxModel(data.toArray()); combo2.setModel(comboModel2); } public static void main(String[] args) { SingleEntryComboTester tester = new SingleEntryComboTester(); tester.pack(); tester.setVisible(true); Object[] data = new String[]{"Hack","Track","Chouba","Chouba","Hop!","Ka","Track"}; Set set = new HashSet(); List list = new ArrayList(); for(Object o: data){ list.add(o); set.add(o); } tester.setFirstComboData(set); tester.setSecondComboData(list); } }
;-)
HackTrack
kiwi2910
Messages postés
10
Date d'inscription
dimanche 25 février 2007
Statut
Membre
Dernière intervention
3 mars 2007
1
27 févr. 2007 à 18:19
27 févr. 2007 à 18:19
D'accord merci je vais essayer de mettre ça en oeuvre.
kiwi2910
Messages postés
10
Date d'inscription
dimanche 25 février 2007
Statut
Membre
Dernière intervention
3 mars 2007
1
27 févr. 2007 à 18:37
27 févr. 2007 à 18:37
En fait je ne vois pas trop comment adapter celà à ma lecture de fichier. Pour obtenir tous les noms d'option à chaque ligne du fichier je boucle et je récupère ce nom d'option dans un String opt=tok.nextToken(). je vous montre ce qui marchait jusqu'à maintenant avec les doublons:
public void getOption() throws IOException{ try{ BufferedReader lecture=new Bufferedreader (new FileReader("D:/IUT/Liste.txt")); while(true){ String ligne=lecture.readLine(); if(ligne==null)break; StringTokenizer tok=new StringTokenizer (ligne, ";"); String opt=tok.nextToken(); //on récupère l'option JCBListeOption.additem(opt); //on ajoute au Jcombobox } lecture.close(); } catch(NoSuchElementException e){} } }
27 févr. 2007 à 18:18
J'extrait les options du fichier grâce à la classe Tokenizer et ses délimiteurs pour les placer dans le JCombobox.