Bonjour,
J'ai un souci pour rafraichir une comboBox.
Voici comment cela fonctionne. Dans un ComboBox 1, j'ai une liste de clients. Et j'aimerais que lorsque l'on choisi un client, dans le CbBox 2, il y soit affiché les comptes du client.
Les clients sont stockés dans une ArrayList qui est transmise au premier CboBox.
Pour remplir la 2ieme Liste, c'est un peu plus compliqué : je récupere l'id du Combobox Client et via cet id je recupere le nom du client dans l'array list Client. Ensuite, je fais une boucle qui transmet a un vecteur les comptes du client que j'affiche ensuite dans ma seconde liste. Via des System.println, on peux voir que cela fonctionne bien. Mon seul souci est de mettre à jour la 2ieme CBox.
Voici des bouts de codes :
Via ce code, je recupere l'id de l'AList Client pour ensuite aller cherche ses comptes via son nom
Via cette boucle, je copie les comptes du client dans un vecteur dans le but de l'afficher dans la liste 2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 jCBnomclient.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { /* ici sera gérer le remplissage de la liste des comptes clients suivant le choix du client */ System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed() JComboBox jCBnomclient = (JComboBox)e.getSource(); int idclientliste = jCBnomclient.getSelectedIndex();
Enfin, je transmet le vecteur au ComboBox :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5for (int i = 0; i < nomclientliste.sesComptes.size(); i++){ vectcombo.addElement(nomclientliste.sesComptes.get(i)); }
J'ai essayer de mettre un remvoveAllItems() juste apres le "if (jCBsescomptes == null) {" mais sa n'a pas fonctionner : java.lang.NullPointerException
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 public JComboBox getJCBsescomptes() { if (jCBsescomptes == null) { jCBsescomptes = new JComboBox(vectcombo); jCBsescomptes.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed() } }); }
Idem pour le udpdate.UI();
Selon moi, je pense qu'il faut mettre à jour la liste 2 avant de transmettre le vecteur non? J'ai l'impression de ne pas le placer ou il faut.
Par contre, comme j'ai pas utilisé le addItem mais j'ai crée un JComboBox qui charge le vecteur dedans, c'est peut etre pour cela que la technique du allRemoveItem(); ne passe pas ?
Je ne dois pas etre très loin de la solution!!!
Merci à celui qui pourra m'orienter vers la lumière![]()







Répondre avec citation


Partager