Posez votre question Signaler

Recherche java

Salma - Dernière réponse le 20 août 2008 à 12:00
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.
Lire la suite 

Recherche java »

6 réponses
Réponse
+0
moins plus
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.

++
Ajouter un commentaire
Réponse
+0
moins plus
merci pour la réponse mais vous pouvez mieux m'expliquer. merci bien
sandul - 20 août 2008 à 08:57
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?

++
Ajouter un commentaire
Réponse
+0
moins plus
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
sandul - 20 août 2008 à 11:01
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;
	}
}

++
Ajouter un commentaire
Réponse
+0
moins plus
merci bien
Ajouter un commentaire
Ce document intitulé « recherche java » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook