Bonjour,
Je sollicite votre aide car j'ai un souci avec mes JComboBox et JList. J'ai une liste qui est liée avec une combo box. Càd, la JList est chargée et remplie en cliquant sur l'item de la combo, et chaque clic sur l'item de la combo doit afficher des données différentes dans la JList.

Or, dans mon cas, cela fonction seulement lors du 1e clic, les données sont bien chargées dans la liste mais à partir du 2e clic (par ex: un autre item) il se passe rien dans la liste. Les données qui y sont affichées sont tjr les mêmes (Celles obtenues par le 1e clic).

Je précise que sur l'affichage console, ces données changent à chaque clic.

Pourriez-vous éclairer ma lanterne, SVP?

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
 
private JComboBox getJComboCat() {
		if (jComboCat == null) {
			jComboCat = new JComboBox();
			jComboCat.setModel(new DefaultComboBoxModel(new String[]{"Carte graphique", "Carte mère",
		            "Clavier", "Connectiques", "Disque dur", "Ecran", "Processeur", "Souris", "Unité centrale", "Webcam"}));
			jComboCat.addItemListener(new ItemListener(){
 
					@Override
				public void itemStateChanged(ItemEvent e) {
					jScrollPane2.setViewportView(jListLib);
					jComboCat = (JComboBox) e.getSource();
					String data = (String) jComboCat.getSelectedItem();				
					listLibelle(data);
				}					
			});
			jComboCat.setBounds(new Rectangle(130, 180, 260, 25));
		}
		return jComboCat;
	}
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
 
private void listLibelle(String s) {
		try {
			String url = "jdbc:mysql://localhost:3306/gestion_stock";
			Connection connection = DriverManager
					.getConnection(url, "root", "");
			Statement stmt = connection.createStatement();
			ResultSet rs = stmt
					.executeQuery("select DISTINCT Libellé from stock WHERE Catégorie LIKE '%"
							+ s + "%'");
			modelLib = new DefaultListModel();
			while (rs.next()) {
				modelLib.addElement(rs.getString("Libellé"));
				System.out.println("Purchage.listLibelle: "+ modelLib);
			}
		} catch (SQLException e) {
			System.out.println("Purchase.getJListLib()" + e.getMessage());
			System.out.println(e.getStackTrace());
		}
		if (jListLib == null) {								
			jListLib = new JList(modelLib);
			System.out.println("Purchase.getJListLib(): " +modelLib);
			jListLib.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		}
	}
Merci d'avance de votre aide