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 :

Sélectionner le contenu d'une cellule dès le changement de ligne JTable java


Sujet :

Composants Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 6
    Points : 7
    Points
    7
    Par défaut Sélectionner le contenu d'une cellule dès le changement de ligne JTable java
    Bonjour,
    Le JTable me torture en ce moment. Ce que je souhaite voir, c'est, qu'en mode saisie, le passage d'une ligne à l'autre (public void tableChanged(TableModelEvent e){}) permette de sélectionner immédiatement le contenu de la prochaine cellule à éditer, ceci en vue du remplacement facile de l'ancienne valeur. Merci de me répondre !

  2. #2
    Membre expérimenté Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 340
    Points : 1 576
    Points
    1 576
    Par défaut
    Bonjour,

    j'en ai bavé aussi sur ce sujet... après de multiples recherches, voici les mécanismes que je mets en place pour cela:
    Lors de la création de la table:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    maJTable = new JTable();
    cEventJTable = new CEvenementMaJTable();
    maJTable.getSelectionModel().addListSelectionListener( cEventJTable ); // Détecte les changement de sélection de ligne de la JTable
    maJTable.getColumnModel().getSelectionModel().addListSelectionListener( cEventJTable ); // Détecte les changements de sélection de colonne au sein de la même ligne
    /.../
    Un peu plus loin dans le code, la définition de la classe de gestion des évènements de la JTable:
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    private class CEvenementMaJTable implements ListSelectionListener
    {
      @Override
      public void valueChanged( ListSelectionEvent lSE ) {
        final JTextField txtValeurNum;
     
        int ligne = maJTable.getSelectedRow();
     
        if( lSE.getValueIsAdjusting() || ligne < 0 ) // Parfois, ligne vaut -1
          return;
     
        int colonne = tblVentilInstrum.getSelectedColumn();
     
        switch( colonne ) // Je ne traite que les colonnes où je veux de la sélection auto de texte
        {
          case 0:
            /.../
            break;
     
          case 1:
            /.../
            break;
     
          case 2:
          case 3: // Ici par exemple
            maJTable.editCellAt( ligne, colonne );
            DefaultCellEditor editCell = (DefaultCellEditor)( maJTable.getCellEditor( ligne, colonne ));
            txtValeurNum = (JTextField)editCell.getComponent();
     
            // La sélection doit être traitée par un autre Thread... ce qui oblige le composant de la cellule a être 'final'
            SwingUtilities.invokeLater( new Runnable() {
              public void run() {
                txtValeurNum.selectAll();
              }
            });
            break;
     
          default:
            /.../
            break;
        }
      }
    }
    Voilà, je ne sais pas si c'est la meilleure manière de procéder, en tout cas, elle fonctionne.
    J'espère que cela vous permettra de résoudre votre problème...
    @ bientôt...

    Salut & @+ sur 3W!

Discussions similaires

  1. [XL-2007] Sélectionner une feuille dont le nom est contenu dans une cellule
    Par Nonno 94 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/06/2014, 20h47
  2. Réponses: 4
    Dernier message: 27/08/2013, 19h21
  3. Sélectionner le contenu d'une cellule
    Par FabaCoeur dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 12/07/2010, 16h49
  4. Réponses: 3
    Dernier message: 27/01/2006, 18h35
  5. Importer le contenu d'une cellule Excel vers Access
    Par deaqu1 dans le forum Access
    Réponses: 7
    Dernier message: 05/11/2005, 15h26

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