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 

Votre réponse

6 réponses

Meilleure réponse
Utilisateur anonyme - 12 janv. 2011 à 13:03
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

Merci Utilisateur anonyme 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

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
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
Utilisateur anonyme - 12 janv. 2011 à 19:00
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
paesmarc 24 Messages postés mercredi 6 mai 2009Date d'inscription 22 août 2013 Dernière intervention - 13 janv. 2011 à 08:44
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
Utilisateur anonyme - 13 janv. 2011 à 12:01
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
paesmarc 24 Messages postés mercredi 6 mai 2009Date d'inscription 22 août 2013 Dernière intervention - 13 janv. 2011 à 12:53
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

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.