JXTable [Résolu]

paesmarc 24 Messages postés mercredi 6 mai 2009Date d'inscription 22 août 2013 Dernière intervention - 12 janv. 2011 à 09:40 - Dernière réponse : paesmarc 24 Messages postés mercredi 6 mai 2009Date d'inscription 22 août 2013 Dernière intervention
- 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 

6 réponses

Répondre au sujet
Utilisateur anonyme - 12 janv. 2011 à 13:03
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Utilisateur anonyme
paesmarc 24 Messages postés mercredi 6 mai 2009Date d'inscription 22 août 2013 Dernière intervention - 12 janv. 2011 à 18:19
0
Utile
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
Utilisateur anonyme - 12 janv. 2011 à 19:00
0
Utile
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
paesmarc 24 Messages postés mercredi 6 mai 2009Date d'inscription 22 août 2013 Dernière intervention - 13 janv. 2011 à 08:44
0
Utile
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
Utilisateur anonyme - 13 janv. 2011 à 12:01
0
Utile
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
paesmarc 24 Messages postés mercredi 6 mai 2009Date d'inscription 22 août 2013 Dernière intervention - 13 janv. 2011 à 12:53
0
Utile
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

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.