Création et utilisation de plusieurs filtres / recherches à l'aide de JTable ou de GlazedLists

StackOverflow https://stackoverflow.com/questions/1631788

Question

J'ai cherché comment utiliser plusieurs filtres ici avec une table normale et les réponses ont toutes pointé vers GlazedLists . Cependant, les réponses ne précisaient pas comment l'utiliser. J'ai réussi à faire fonctionner un filtre mais je ne sais pas en obtenir plus d'un. Pour un filtre que j'ai utilisé:

  // nameE is a BasicEventList containing classes (name) which 
  // contain the table values
  TextFilterList filtered = new TextFilterList(nameE);
  JTextField filterEdit = filtered.getFilterEdit();

  // Inside the table value class (name) there is a filter for myName
  public void getFilterStrings(List baseList) {
      baseList.add(myName);
  }

Dupliquer le code et créer un autre < code> JTextField ne fonctionne pas. J'ai examiné ce problème et il semble que CompositeMatcherEditor peut fonctionner. Le problème est que je ne sais pas comment mettre cela en œuvre.

De plus, j'utilise Eclipse. J'ai téléchargé GlazedLists 1.8.0 et l'ai transféré dans Eclipse. Cependant, je ne peux pas l'utiliser. J'ai des carrés rouges partout (sauf pour le dossier source)! J'ai même ajouté le fichier jar.

J'espère m'être bien expliqué. S'il vous plaît, faites-moi savoir si j'ai besoin de développer.

Mon Pastebin: Nom , Navigateur , Format de table , Modèle de table

Était-ce utile?

La solution

TextFilterList est obsolète - voir le site Web javadocs - mais c'est un problème secondaire.

Il existe plusieurs approches que vous pouvez utiliser ici - si vous voulez vraiment simple, enroulez simplement votre liste de filtres dans une autre liste de filtres:

EventList filtered = new FilterList(new FilterList(nameE, myFirstMatcherEditor), mySecondMatcherEditor);

Une meilleure méthode consiste à utiliser plusieurs éditeurs de matcher pour créer un CompositeMatcherEditor :

EventList filtered = new FilterList(nameE, new CompositeMatcherEditor(myFirstMatcherEditor, mySecondMatcherEditor));

vous pouvez utiliser setMode pour déterminer si vos éditeurs sont combinés à l'aide du comportement AND ou OR.

Voici les informations obligatoires à lire sur l'utilisation des listes de filtres.

Les screencasts disponibles ici valent également l'investissement de quelques minutes.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top