Problème avec ma méthode de recherche dans une JList
Bonjour,
Voilà j'ai 4 JLists et j'ai voulu créer une fonction de recherche qui se trouve dans le listener du JTextField suivant:
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 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
| jTextFieldSearch.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent e) {
if(e.getKeyCode() == java.awt.event.KeyEvent.VK_ENTER) {
if(!jTextFieldSearch.getText().trim().equals("")) {
boolean found = false;
int indices[] = new int[defaultListModelHouse.size()];
for(int i = 0; i < defaultListModelHouse.size(); i++) {
if(defaultListModelHouse.get(i).toString().startsWith(jTextFieldSearch.getText())) {
indices[i] = i;
//jListHouse.setSelectedIndex(defaultListModelHouse.indexOf(defaultListModelHouse.get(i).toString()));
found = true;
}
}
if(!found)
jListHouse.clearSelection();
else
jListHouse.setSelectedIndices(indices);
found = false;
indices = new int[defaultListModelApartment.size()];
for(int i = 0; i < defaultListModelApartment.size(); i++) {
if(defaultListModelApartment.get(i).toString().startsWith(jTextFieldSearch.getText())) {
indices[i] = i;
//jListApartment.setSelectedIndex(defaultListModelApartment.indexOf(defaultListModelApartment.get(i).toString()));
found = true;
}
if(!found)
jListApartment.clearSelection();
else
jListApartment.setSelectedIndices(indices);
}
found = false;
for(int i = 0; i < defaultListModelSummerCottage.size(); i++) {
if(defaultListModelSummerCottage.get(i).toString().startsWith(jTextFieldSearch.getText())) {
//jListSummerCottage.setSelectedIndex(defaultListModelSummerCottage.indexOf(defaultListModelSummerCottage.get(i).toString()));
found = true;
}
if(!found)
jListSummerCottage.clearSelection();
else
jListSummerCottage.setSelectedIndices(indices);
}
found = false;
for(int i = 0; i < defaultListModelWinterCottage.size(); i++) {
if(defaultListModelWinterCottage.get(i).toString().startsWith(jTextFieldSearch.getText())) {
//jListWinterCottage.setSelectedIndex(defaultListModelWinterCottage.indexOf(defaultListModelWinterCottage.get(i).toString()));
found = true;
}
if(!found)
jListWinterCottage.clearSelection();
else
jListWinterCottage.setSelectedIndices(indices);
}
}
}
}
}); |
Le problème est qu'avec cette fonction, lorsqu'elle me trouve un élément correspondant à ma recherche dans une ou plusieurs de ces JLists, cela me sélectionne la 1ère ligne aussi tout le temps même si cela ne correspond pas à ma recherche. Si ma recherche ne correspond à rien là rien n'est sélectionné.
Je tourne en rond depuis un petit bout de temps et du coup je n'arrive pas à trouver la solution qui est sûrement simple.
Si vous avez une idée vous êtes le bienvenu.
Merci et bonne journée.