Recherche java

Salma -  
 Salma -
Bonjour,

je veut faire une recherche avec java. mais je veut que la recherche se fait au fur et à mesure avec la saisie du mot recherché.
C'est à dire, le tableau des données élimine des lignes à chaque fois je saisie un caractère.
Pouvez vous me aider svp.
Merci bien d'avance.
A voir également:

4 réponses

sandul Messages postés 4013 Statut Membre 723
 
Salut,

En Swing ou Web? Si Swing, tu peux faire un listener sur l'événement key released et faire l'intérrogation en ce moment. Si Web, tu peux utiliser Ajax.

++
0
Salma
 
merci pour la réponse mais vous pouvez mieux m'expliquer. merci bien
0
sandul Messages postés 4013 Statut Membre 723
 
Ben, voyons, c'est à toi de mieux expliquer ce que tu veux faire:
je veut faire une recherche avec java. mais je veut que la recherche se fait au fur et à mesure avec la saisie du mot recherché. <== quel genre d'application as-tu? Une application Java desktop? Dans ce cas: utilises-tu Swing? AWT? SWT? Autre?

Si pas de desktop: est-ce qu'il s'agit d'un application Web?

++
0
Salma
 
j'ai un tableau de données. contenant nom prénom etc....
au dessous du tableau j'ai un jtextfield . par exemple je vais faire la recherche selon le nom. par exemple je cherche les clients sous le nom salma. quand je saisie s les lignes du tableau dont la première lettre du nom et différente de s vont disparettre. apres quand je saisie a le tableau elimine encors des lignes etc...
j'utilise le swing
0
sandul Messages postés 4013 Statut Membre 723
 
OK.

j'ai un tableau de données. contenant nom prénom etc. <== je suppose que le composant est une JTable. Dans ce cas, tu pourrais faire un truc comme ça (code non optimisé du tout: si le modèle est grand - des milliers de lignes - ça va ramer).
import java.awt.BorderLayout;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.Vector;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;

public class SalmaSample extends JFrame {
	private JTable table;
	private JTextField textField;
	private static final long serialVersionUID = 1L;
	private final String[][] data = new String[][] { { "nicolas", "sarko" }, { "bonaparte", "napoléon" },
			{ "jules", "césar" }, { "salma", "salma" } };
	private final String[] cols = new String[] { "prénom", "nom" };
	DefaultTableModel model = new DefaultTableModel(data, cols);

	public static void main(String args[]) {
		try {
			SalmaSample frame = new SalmaSample();
			frame.setVisible(true);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public SalmaSample() {
		super();
		setBounds(100, 100, 500, 375);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		textField = new JTextField();
		textField.addKeyListener(new KeyAdapter() {
			public void keyReleased(KeyEvent e) {
				// restore the ancient table model
				getTable().setModel(model);

				// seek the model (column name)
				String enteredText = textField.getText();
				Vector<Vector> data = ((DefaultTableModel) getTable().getModel()).getDataVector();
				// in our example (hardcoded),data is a Vector of Vector; inner Vector contains 2 elements
				// first one is our firstName we're looking for
				Vector<Vector<String>> filteredElements = new Vector<Vector<String>>();
				for (Vector<String> v : data) {
					if (v.get(0).startsWith(enteredText)) {
						filteredElements.add(v);
					}
				}

				// at this point, we have all the elements starting with our enteredText
				Vector<String> colV = new Vector<String>();
				colV.add("prénom");
				colV.add("nom");
				DefaultTableModel newModel = new DefaultTableModel(filteredElements, colV);
				getTable().setModel(newModel);
			}
		});

		getContentPane().add(textField, BorderLayout.NORTH);

		final JScrollPane scrollPane = new JScrollPane();
		getContentPane().add(scrollPane, BorderLayout.CENTER);

		scrollPane.setViewportView(getTable());
		//
	}

	protected JTable getTable() {
		if (table == null) {
			table = new JTable(model);
		}
		return table;
	}
}

++
0
Salma
 
merci bien
0