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 :

[SWING] Ma table JTABLE n'est pas éditable


Sujet :

Composants Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 37
    Points : 20
    Points
    20
    Par défaut [SWING] Ma table JTABLE n'est pas éditable
    J'ai spécialisé la classe DefaultTableModel afin de redéfinir ces méthodes ... normal quoi ...

    Afin que toutes les cellules de la table soient éditables, j'ai redéfinit la méthode isCellEditable pour retourner systématiquement true.

    Pourtant, la table n'est pas éditable. Il y a un truc qui m'échappe.

    Rq : j'ai redéfinit la méthode getValueAt mais pas encore setValueAt.

    Merci pour votre aide.

    Dahu

  2. #2
    Membre du Club Avatar de bubu56
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 58
    Points : 65
    Points
    65
    Par défaut Re: [SWING] Ma table JTABLE n'est pas éditable
    Citation Envoyé par Dahu
    Rq : j'ai redéfinit la méthode getValueAt mais pas encore setValueAt.
    la réponse est dans la question ....

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 37
    Points : 20
    Points
    20
    Par défaut
    Quand j''écrit que je n'ai pas redéfinit la méthode setValueAt ca n'est pas tout à fait exacte car la méthode est implémentée par ma classe spécialisée. Pour le moment, la méthode ne fait rien sauf ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      public void setValueAt (Object arg0, int row, int col)
      {
        fireTableCellUpdated(row,col);
      }
    Que faudrait-il que je fasse dans cette méthode pour que je puisse saisir dans les cellules du tableau ?

    Merci de votre aide.

    Dahu

  4. #4
    Membre du Club Avatar de bubu56
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 58
    Points : 65
    Points
    65
    Par défaut
    tu récupères les valeurs avec getvavueat...
    donc avec setvalueat il faut que tu modifies les données que tu récupères avec getvalueat...

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 37
    Points : 20
    Points
    20
    Par défaut
    Je suis désolé mais je ne comprend pas bien ces explications. La méthode getValueAt est appelée par l'objet graphique (le tableau) pour récupérer le contenu de la cellule.

    La méthode setValueAt est appelée par l'objet graphique (MVC : la Vue) pour informer mon objet (MVC : le Controleur) d'une modification d'une valeur du tableau.

    Pour le moment, la méthode setValeurAt n'est pas appelée puisque je ne peux pas rentrer en édition sur les cellules de mon tableau.

    Merci.

  6. #6
    Membre éclairé Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Points : 724
    Points
    724
    Par défaut
    Généralement, je fais comme ca et ca fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    DefaultTableModel model = new DefaultTableModel() {
    	boolean[] canEdit = new boolean[] { true, true };
     
    	public boolean isCellEditable(int rowIndex, int columnIndex) {
    				return canEdit[columnIndex];
    		}
    };
    Et j'ai pas besoin de redéfinir d'autres méthodes...
    J'espère que ca pourra t'aider...
    +++
    Ju
    "Il y a 3 personnes en ce monde sur qui tu peux compter : moi, le pape et le cavalier solitaire ! "
    Penser à svp

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 37
    Points : 20
    Points
    20
    Par défaut
    J'ai carrément fait un "return true". Mais même en répondant true systématiquement mon tableau reste non éditable. Je crois devenir fou.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 37
    Points : 20
    Points
    20
    Par défaut
    J'ai mis un point d'arrêt dans la méthode getValueAt et dans isCellEditable. Je m'apercois que la méthode getValueAt est bien appelée mais pas l'autre méthode !!!

    Merci.

    Dahu.

Discussions similaires

  1. Table DUAL n'est pas connue par Oracle
    Par HANNIBAL_CARTHAGE dans le forum Oracle
    Réponses: 2
    Dernier message: 02/06/2015, 16h24
  2. Réponses: 1
    Dernier message: 01/10/2013, 16h18
  3. [XL-2003] Requête classeur fermé - La table externe n'est pas au format attendu
    Par Blencastreur dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 03/05/2012, 10h50
  4. Réponses: 0
    Dernier message: 15/08/2010, 19h07
  5. Réponses: 11
    Dernier message: 04/08/2006, 11h07

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