Charger JList en fonction de selection JComboBox
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:
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:
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