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 :

JTable vérification de la valeur saisie


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 6
    Par défaut JTable vérification de la valeur saisie
    Bonjour à tous.

    Après plusieurs heures de recherche infructueuses je me décide à vous demandez de l'aide. Je n'ai pas trouvé la solution à mon problème, peut-être que je n'utilise pas les bons mots clés...

    Voilà mon problème:

    J'ai une JTable sur laquelle j'ai redéfini un modèle. Je souhaite vérifier la valeur saisie par l'utilisateur dans les cases du tableau avant d'exécuter la fonction de traitement.

    Pour cela j'ai défini un TableCellEditor avec un JFormattedTextField qui fonctionne séparement mais si je rajoute la méthode fireTableCellUpdated pour le traitement, le programme exécute en premier cette méthode avant de vérifier la valeur ce qui fait que mon programme renvoie une exception car j'essaie de "parser" une valeur qui n'est pas correcte.

    Ce que je veux c'est que la cellule reste en mode édition tant que la valeur n'est pas correcte.

    Est-ce que vous avez une solution s'il vous plaît ?

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Le fireTableCellUpdated doit être fait dans le setValue du modèle qui n'est appelé qu'une fois que l'éditor a rendu la main, pas au niveau du CellEditor.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 6
    Par défaut
    Merci pour votre réponse.

    En fait mon modèle est le suivant:

    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
    17
    18
    19
    model = new DefaultTableModel(columnNames,0) {
        private static final long serialVersionUID = 1L;
     
        Class[] types = new Class [] { String.class };
     
        public Class getColumnClass(int columnIndex) {
            return types [columnIndex];
        }
     
        boolean[] canEdit = new boolean [] { true };
     
        public boolean isCellEditable(int rowIndex, int columnIndex) {
            return canEdit [columnIndex];
        }
     
        public void fireTableCellUpdated(int row, int col) {
            //TRAITEMENT
        }
    };
    Je pensais que le fireTableCellUpdated était appelé implicitement après le setValue. Dois-je rajouter la méthode setValue ?

  4. #4
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Enlève ton implémentation vide de la méthode fireTableCellUpdated, le DefaultTableModel en fourni une qui fonctionne parfaitement.

    De fait vu que tu utilises un DefaultTableModel et que tu n'as pas redéfini la méthode setValueAt, tu n'as absolument pas besoin d'appeler cette méthode où que ce soit, et encore moins dans ton editor.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 6
    Par défaut
    Du coup, en procédant ainsi où est-ce que je dois appeler ma fonction de traitement qui se trouve dans mon fireTableCellUpdated à l'origine (je l'ai pas mise dans le code pour pas surcharger mon message) ?

  6. #6
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Qu'est censée réaliser ta méthode de traitement?

Discussions similaires

  1. [JTable] Récupération de la valeur saisie
    Par grabriel dans le forum Composants
    Réponses: 2
    Dernier message: 04/06/2007, 18h06
  2. [C#][WinForms][DataGrid]Vérifier les valeurs saisies
    Par loverdose dans le forum Windows Forms
    Réponses: 3
    Dernier message: 15/12/2005, 11h29
  3. Réponses: 18
    Dernier message: 15/11/2005, 10h13
  4. tester le type d'une valeur saisie
    Par lalaurie40 dans le forum C
    Réponses: 1
    Dernier message: 09/10/2005, 21h52
  5. Réponses: 2
    Dernier message: 11/12/2004, 21h20

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