Permet de rechercher un element dans une JList a l'aide d'un JtextField.
A chaque ajout de caractere la JList est modifier pour afficher que les elements correspondants.
Source / Exemple :
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
import javax.swing.DefaultListModel;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import org.dyno.visual.swing.layouts.Constraints;
import org.dyno.visual.swing.layouts.GroupLayout;
import org.dyno.visual.swing.layouts.Leading;
@SuppressWarnings("all")
public class TextFilter extends JFrame {
private JList jList0;
private JTextField jTextFieldRecherche;
private ArrayList lesElements = new ArrayList();
public TextFilter() {
setLayout(new GroupLayout());
add(getJList0(), new Constraints(new Leading(24, 155, 10, 10), new Leading(32, 387, 10, 10)));
add(getJTextFieldRecherche(), new Constraints(new Leading(297, 119, 10, 10), new Leading(163, 10, 10)));
setSize(550, 450);
}
private void initArrayList(){
lesElements.add("Lucas");
lesElements.add("Lea");
lesElements.add("Theo");
lesElements.add("Manon");
lesElements.add("Hugo");
lesElements.add("Emma");
lesElements.add("Thomas");
lesElements.add("Chloe");
lesElements.add("Enzo");
lesElements.add("Camille");
lesElements.add("Maxime");
lesElements.add("Oceane");
lesElements.add("Alexandre");
lesElements.add("Ines");
lesElements.add("Mathis");
lesElements.add("Marie");
lesElements.add("Nathan");
lesElements.add("Clara");
lesElements.add("Antoine");
lesElements.add("Sarah");
}
private JList getJList0() {
if (jList0 == null) {
jList0 = new JList();
DefaultListModel listModel = new DefaultListModel();
initArrayList();
//Ajouts des Elements de l'arrayList dans la JList
for (int i = 0; i< lesElements.size();i++) listModel.addElement(lesElements.get(i).toString());
jList0.setModel(listModel);
}
return jList0;
}
private JTextField getJTextFieldRecherche() {
if (jTextFieldRecherche == null) {
jTextFieldRecherche = new JTextField();
//Ajout d'un listener lors d'un relachement d'une touche de clavier
jTextFieldRecherche.addKeyListener(new KeyAdapter() {
public void keyReleased(KeyEvent e) {
DefaultListModel model = new DefaultListModel();//creation dun nouveau model pour une JList
String enteredText = jTextFieldRecherche.getText(); //On recupere le texte entree dans le JtextField
for (int i = 0; i< lesElements.size();i++) {
//Comparaison des elements contenu dans l ArrayList et du texte entree
if (lesElements.get(i).toString().indexOf(enteredText) != -1) {
model.addElement(lesElements.get(i).toString());//ajout de lelement dans le nouveau model
}
}
getJList0().setModel(model);//On definie ce nouveau model pour la JList
}
});
}
return jTextFieldRecherche;
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
TextFilter frame = new TextFilter();
frame.setDefaultCloseOperation(TextFilter.EXIT_ON_CLOSE);
frame.setTitle("TextFilter");
frame.getContentPane().setPreferredSize(frame.getSize());
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
}
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.