IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants Java Discussion :

Effacer un filtrage d'un jtable


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Femme Profil pro
    etudiant
    Inscrit en
    Mars 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : etudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2014
    Messages : 38
    Par défaut Effacer un filtrage d'un jtable
    J'ai un jtable rempli avec des données j'ai créer une méthode qui lorsque je fai un clic droit sur une colonne m'affiche JOptionPane.showInputDialog
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    myTable.getTableHeader().addMouseListener(new MouseAdapter() {
                public void mouseClicked(MouseEvent e) {
                    int buttonDown = e.getButton();
                    if(buttonDown == MouseEvent.BUTTON3) {
                        // Bouton DROIT enfoncé
                        int column = mytTable.columnAtPoint(e.getPoint());
                        String name = mytTable.getColumnName(column);
                        String ff=JOptionPane.showInputDialog(name);
                        if(!ff.equals("")&&(!ff.equals(null))){
                            applyTableFilter(ff, column);
     
                        }
                    }
                }
            });
    et la méthode applyTableFilter:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    private void applyTableFilter(String filterText, int index) {
     
    		String s1= Pattern.quote(filterText);
     
    		String s2 = ".*" + s1 + ".*";
     
    		// On applique le filtre a la JTable
    		((DefaultRowSorter) myTable.getRowSorter())
    				.setRowFilter(RowFilter.regexFilter(s2, index));
     
     
        }

    mon 1er souci est: quand je clique sur anuler de mon showInputDialog me génère une exception.
    le deuxieme lorsque j'applique mon filtre j'arrive pas à l'annuler.

    De l'aide SVp

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Le problème, quand tu annules la saisie du filtre, est là :

    Cette expression n'a même aucun sens en Java. Si ff est null, alors ff ne référence aucune instance d'objet, et, donc, on ne peut appeler de méthode (on appelle des méthodes sur des instances d'objets, pas sur rien). et si on peut appeler equals() c'est que ff n'est pas nuil, et donc ça sert à rien de tester s'il est null, on sait qu'il ne l'est pas.

    pour tester si une variable est null, c'est un des cas, où il faut utiliser == et pas equals() :

    Attention, ce qui est valable pour ff.equals(null), l'est aussi pour ff.equals("") : si ff est null ff.equals( de n'importe quoi ) causera une NullPointerException. Il ne faut donc pas faire ce test, si ff est null, ou s'arranger pour le test ne plante pas même si ff est null.

    Pour s'arranger pour que le test ne soit fait que si ff n'est pas null, il suffit d'inverser les 2 expressions :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if( ff!=null && !ff.equals("") ) { ...
    On peut aussi éviter tout plantage, en inversant les "opérandes" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if( ff!=null && !"".equals(ff) ) { ...

    Par exemple, on peut toujours écrire :

    , même si ff est null (le code de la méthode equals retourne false évidemment dans ce cas).


    Sinon, pour remettre à zéro un RowFilter : setRowFilter(null)
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre actif
    Femme Profil pro
    etudiant
    Inscrit en
    Mars 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : etudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2014
    Messages : 38
    Par défaut
    Merci bcp, mon problème a été résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Filtrage sur une JTable en langage naturel
    Par Patrice Henrio dans le forum Composants
    Réponses: 0
    Dernier message: 14/08/2014, 12h59
  2. Filtrage d'une JTable
    Par genamiga dans le forum Composants
    Réponses: 1
    Dernier message: 15/04/2009, 16h38
  3. [JTable] Cellule editable qui efface mon contenu
    Par Zanton dans le forum Composants
    Réponses: 4
    Dernier message: 01/06/2006, 13h34
  4. [Peu important]JTable effacer colonne
    Par leminipouce dans le forum Composants
    Réponses: 6
    Dernier message: 07/12/2005, 18h30
  5. JTable effacer le rectangle de la cellule
    Par dr00w dans le forum Composants
    Réponses: 4
    Dernier message: 07/11/2005, 16h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo