Bonjour à tous,
Je cherche a écrire un model de JComboBox ou je peux a tous moment supprimer les items et ajouter d'autres items.
Le problème vient que je ne peux pas toujours sélectionner un item dans la liste déroulante.
Si je clique sur un item, il ne me le sélectionne pas toujours!
Voici ma classe Model:
Voici l'init de la liste déroulante:
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59 public class MyComboBoxModel extends AbstractListModel implements ComboBoxModel { private ArrayList<String> liste = new ArrayList<String>(); private String selection; public MyComboBoxModel(){ } @Override public void addListDataListener(ListDataListener arg0) { // TODO Auto-generated method stub } @Override public Object getElementAt(int index) { // TODO Auto-generated method stub return liste.get(index); } @Override public int getSize() { // TODO Auto-generated method stub return liste.size(); } @Override public void removeListDataListener(ListDataListener arg0) { // TODO Auto-generated method stub } @Override public Object getSelectedItem() { // TODO Auto-generated method stub return selection; } @Override public void setSelectedItem(Object anObject) { selection = (String) anObject; } public void addItem(String liste2){ liste.add(liste2); this.fireIntervalAdded(this, getSize(), getSize()); } public void removeAllItems() { liste.clear(); liste = new ArrayList<String>(); selection=""; this.fireIntervalRemoved(this, 0, getSize()); } public ArrayList<String> getListe() { return liste; } }
Quand je clique sur un item j'ai dans la console:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 //Liste déroulante membre_masquer= new JComboBox(new MyComboBoxModel()); membre_masquer_model= (MyComboBoxModel)membre_masquer.getModel(); membre_masquer.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent event) { iSystem.out.println("test clique liste déroulante"+membre_masquer_model.getSelectedItem()+" | "+membre_masquer.getSelectedIndex()); if(membre_masquer.getSelectedIndex()>=0){ id_membre = Integer.valueOf((String) membres_masquer.get(membre_masquer.getSelectedIndex()).get(0)); System.out.println("test clique liste déroulante"+id_membre); } } });
membre_masquer.getSelectedIndex() = -1
Donc ça me le sélectionne pas.
Voici comment je rafraîchi la liste:
Mon problème vient de la sélection d'un item.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 System.out.println("CLEAR"); membre_masquer_model.removeAllItems(); membres_masquer.clear(); membres_masquer=new ArrayList<ArrayList<Object>>(); for(int x=0;x<membres_connecter.size();x++){ membres_masquer.add(x, new ArrayList<Object>()); membres_masquer.get(x).add(0, String.valueOf(membres_connecter.get(x).getId())); membres_masquer.get(x).add(1, membres_connecter.get(x)); membre_masquer_model.addItem(membres_connecter.get(x).getNom()+" "+membres_connecter.get(x).getPrenom()); System.out.println("ADD liste : "+membres_connecter.get(x).getNom()+" "+membres_connecter.get(x).getPrenom()); }
J'ai l'impression que j'ai des problème lorsque:
-J'appel membre_masquer_model.removeAllItems();
-Je clique sur l'item déjà sélectionner auparavant
J'ai cherché des exemples de model de JComboBox avec ajout ou suppression d'item sur le net, mais je n'ai pas trouvé d’exemples.
Merci pour votre aide![]()
Partager