JXTable [Résolu]

Messages postés
24
Date d'inscription
mercredi 6 mai 2009
Statut
Membre
Dernière intervention
22 août 2013
- - Dernière réponse : paesmarc
Messages postés
24
Date d'inscription
mercredi 6 mai 2009
Statut
Membre
Dernière intervention
22 août 2013
- 13 janv. 2011 à 12:53
Bonjour,
Je souhaite faire un 'moteur de recherche' sur un JXTable. Ce composant à une fonction de recherche (Ctrl+f) mais j'aimerais pouvoir faire cette recherche à partir d'un JTextField (donc pas devoir appeler la messageBox par Ctrl F).
Pouvez-vous m'aider ?
Je vois bien dans les API qu'il y a une interface 'Searchable' mais je ne parviens pas à l'utiliser...
Afficher la suite 
A voir également:

6 réponses

Meilleure réponse
3
Merci
Bonjour

La documentation est pourtant très claire à ce sujet, il suffit d'appeler la méthode setSearchable(Searchable searchable) en lui passant ta propre implémentation de l'interface Searchable. La documentation explique très bien ce que les méthodes à implémenter doivent retourner.

Cependant, tu devrais plutôt récupérer l'instance de Searchable déjà utilisée par la table avec la méthode getSearchable() et appeler la méthode search(String searchString) sur cet objet en lui passant le contenu de ton champ de texte ce qui va te renvoyer l'indice de la chaîne si elle se trouve dans la table. Bon courage.














TUER : http://tuer.sourceforge.net/tuer.jnlp

yeah! vive java

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 198 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Utilisateur anonyme
Messages postés
24
Date d'inscription
mercredi 6 mai 2009
Statut
Membre
Dernière intervention
22 août 2013
0
Merci
Merci,

J'ai utilisé la solution avec la méthode getSearchable() et le résultat me satisfait.
Néanmoins, puis-je encore abuser de ton savoir ?
Est-il possible de faire une recherche sans que se soit sensible à la casse ?

Marc
Commenter la réponse de paesmarc
0
Merci
C'est possible mais pas par défaut. Utilise la première méthode que j'ai proposée mais en dérivant de la classe org.jdesktop.swingx.JXTable.TableSearchable et en surchargeant la méthode search().








TUER : http://tuer.sourceforge.net/tuer.jnlp

yeah! vive java
Commenter la réponse de Utilisateur anonyme
Messages postés
24
Date d'inscription
mercredi 6 mai 2009
Statut
Membre
Dernière intervention
22 août 2013
0
Merci
Là par contre, je ne parviens pas à implémenter (je débute !!!).
Tu n'aurais pas un exemple de code ???
J'espère ne pas abuser...

Marc
Commenter la réponse de paesmarc
0
Merci
Tu n'abuses pas mais ne te lance pas dans un projet en Java sans en avoir les bases. Fais une classe du genre :

import org.jdesktop.swingx.JXTable.TableSearchable;

public TableCaseUnsensitiveSearchable extends JXTable.TableSearchable{

    @Override
    public int search(java.lang.String searchString){
        int result;
        //TODO: à toi de coder, utilise equalsIgnoreCase
        return(result);
    }
}


Si tu as du mal à comprendre ce que j'ai expliqué, je te recommande vivement de jeter un coup d'oeil aux conseils que je donne aux débutants :
http://www.javafr.com/forum/sujet-CONSEIL-BIEN-DEBUTER-JAVA_1489893.aspx










TUER : http://tuer.sourceforge.net/tuer.jnlp

yeah! vive java
Commenter la réponse de Utilisateur anonyme
Messages postés
24
Date d'inscription
mercredi 6 mai 2009
Statut
Membre
Dernière intervention
22 août 2013
0
Merci
Oui, j'avais essayé de cette manière mais j'avais un message d'erreur (No enclosing instance of type JXTable is available due to some intermediate constructor invocation) dont je ne saisissais pas le sens !
Donc, je me suis dit que je faisais mauvaise route.
Ce n'est pas très grave , je vais garder ma première solution pour le moment. Encore merci pour l'aide.

Marc
Commenter la réponse de paesmarc