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] editer cellule


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2003
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 48
    Par défaut [JTable] editer cellule
    Bonjour,

    j'ai fais une JTable qui liste les fichiers contenus dans un répertoire. Seul les cellules de la première colonne de ma JTable sont éditables.

    Ce que je voudrais c'est que quand je renomme ma cellule, ca me renomme le fichier en meme temps.

    Le problème c'est que j'arrive pas à "capturer" l'évènement qui est appeler lorsque l'on renomme une cellule.

    J'ai bien regardé de l'interface TableCellEditor mais ca a rien donné.

    Donc si quelqu'un pouvait m'aider, je lui serait reconnaissant.

    Merci.

  2. #2
    Membre expérimenté
    Inscrit en
    Septembre 2003
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 174
    Par défaut
    Salut,

    Dans la JTable tu as la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void editingStopped(ChangeEvent e)
    qui est appellée à la fin de l'edition.
    A priori, en la surchargeant, tu pourrais arriver à ce que tu veux.

    sylvain_2020

  3. #3
    Membre averti
    Inscrit en
    Avril 2003
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 48
    Par défaut
    Merci sylvain

    Avec ce que tu me propose j'arrive bien à capturer mon évènement et à savoir quelle est la nouvelle valeur saisie.

    Le seul truc c'est que j'ai besoin de conserver l'ancienne valeur pour pouvoir renommer mon fichier. Et là je ne vois comment faire...

    Merci

  4. #4
    Membre expérimenté
    Inscrit en
    Septembre 2003
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 174
    Par défaut
    Il y a peut-être moyen de faire autrement, mais ce petit bout de code marche a priori :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            public void editingStopped(ChangeEvent arg0) {
                int col = getEditingColumn();
                int row = getEditingRow();
                String ancienneValeur =  (String) myTableModel.getValueAt(row,col);
                super.editingStopped(arg0);
                String nouvelleValeur =  (String) myTableModel.getValueAt(row,col);
            }
    dis moi si ca te va ...

  5. #5
    Membre averti
    Inscrit en
    Avril 2003
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 48
    Par défaut
    voilà comment j'ai réussi à faire ce que je voulais

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    public void editingStopped (ChangeEvent  e)
              {
              int col = getEditingColumn ();
              int row = getEditingRow ();
     
              //On récupère l'ancienne valeur
              FilePanel        fp     = (FilePanel) _sorter.getValueAt(row,col);
              String           szOld  = fp.getText ();
     
              //On récupère la nouvelle valeur
              TableCellEditor  tce    = (TableCellEditor) e.getSource ();
              String           szNew  = (String) tce.getCellEditorValue ();
     
              //On récupère le répertoire courant
              FileNode         node   = (FileNode) _folder.getLastSelectedPathComponent ();
              String           szPath = node.getFile ().getAbsolutePath ();
     
              //On crée les fichiers
              File  src = new File (szPath, szOld);
              File  dst = new File (szPath, szNew);
              File  rep = new File (szPath);
     
              //On renomme le fichier
              src.renameTo (dst);
     
              //On met à jour la liste des fichiers
              _maTable.setDirectory (rep);
     
              //On enlève le focus sur la cellule
              removeEditor ();
              }
    Je vous explique vite fait :

    FilePanel :
    L'objet qui est stocké dans ma cellule à renommer (je l'ai fait pour pouvoir mettre l'icone du fichier et son nom dans une même cellule)

    FileNode :
    Les éléments qui composent mon JTree qui lui-même représente l'arborescence de mon ordinateur

    _maTable :
    Le model qui est utilisé par ma JTable. La méthode setDirectory (rep) permet de rafraichir la JTable.

    Merci à tous pour votre aide.

  6. #6
    Membre expérimenté
    Inscrit en
    Septembre 2003
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 174
    Par défaut
    Citation Envoyé par cootchy
    voilà comment j'ai réussi à faire ce que je voulais
    Ca mériterait presque un tag résolu alors ... no ?

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

Discussions similaires

  1. [jTable] Edition cellule
    Par elninomed dans le forum Composants
    Réponses: 3
    Dernier message: 15/06/2010, 06h27
  2. [SWING][JTABLE]Edition de cellule
    Par xc78370 dans le forum Composants
    Réponses: 4
    Dernier message: 09/05/2006, 11h20
  3. [SWING] JTable editable
    Par cedricbr dans le forum Composants
    Réponses: 3
    Dernier message: 02/03/2006, 16h31
  4. [JTable] Edition de cellules
    Par devil26 dans le forum Composants
    Réponses: 4
    Dernier message: 18/05/2005, 14h08
  5. [JTable][editable] cellule activée/ désactivée
    Par nawel dans le forum Composants
    Réponses: 5
    Dernier message: 09/05/2005, 14h37

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