2010-08-02 6 views
1

J'ai un JTable standard avec certaines données à l'intérieur. Je voudrais créer une fonction de filtrage automatique: lorsque l'utilisateur saisit dans un champ de texte spécifique les mots le processus de filtrage est démarré automatiquement, sans avoir besoin de cliquer sur un bouton. Est-ce possible dans Java Swing?Filtrage automatique dans JTable

Répondre

1

Oui, c'est possible!

Démarrer la démo SwingSet3 (de SwingLabs): http://download.java.net/javadesktop/swingset3/SwingSet3.jnlp

Dans la catégorie de données il y a une démo JTable la liste des candidats aux Oscars et les lauréats. TextField avec le titre "Search Titles and Recipients" fait exactement ce que vous voulez. La démo SwingSet3 vous permet même de surligner les extraits de code via le "Filtre de recherche de configuration" de l'entrée ComboBox.

Le RowFilter du premier extrait ignore les principaux éléments «The» et «A» pour correspondre à davantage de titres de film. Je remplacerais le modèle RegEx cette

".*" + filterString + ".*" 

pour obtenir un vrai « trouver tout pendant que je tape » expérience utilisateur.

Le deuxième extrait vous montre comment implémenter un DocumentListener pour actualiser le filtre de table à chaque frappe.

-3

Oui c'est possible. Lisez l'API JTable et suivez le lien vers le didacticiel Swing sur "Comment utiliser les tables", où vous trouverez un exemple pratique de filtrage.