Recherche d'elements dans une jlist

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 195 fois - Téléchargée 17 fois

Contenu du snippet

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);
			}
		});
	}

}

A voir également

Ajouter un commentaire

Commentaires

ZiggyStardust74
Messages postés
8
Date d'inscription
dimanche 29 novembre 2009
Statut
Membre
Dernière intervention
7 décembre 2009
-
Salut!
J'aimerais juste savoir ce que signifient les 3 derniers import :

import org.dyno.visual.swing.layouts.Constraints;
import org.dyno.visual.swing.layouts.GroupLayout;
import org.dyno.visual.swing.layouts.Leading;

Ils sont importants pour la suite, et je ne sais pas à quoi ils correspondent...

Merci bcp de ton aide!
ismail22021990
Messages postés
5
Date d'inscription
lundi 10 mai 2010
Statut
Membre
Dernière intervention
26 octobre 2010
-
: Faire un programme qui copie un fichier quelconque du disque vers une disquette (ou disque amovible) . Avant de copier, le programme doit vérifier si l’espace disponible sur la disquette est suffisant, et si le fichier existe déjà. Il doit permettre aussi d’afficher le contenu du répertoire résultat.
brahmi87
Messages postés
2
Date d'inscription
vendredi 19 février 2010
Statut
Membre
Dernière intervention
5 février 2012
-
salut
je veux une application simple sur le choix de fournisseurs de service logistique dans une société
et merci d'avance
Commenter la réponse de ZiggyStardust74

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.