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

Interfaces Graphiques en Java Discussion :

[TableModel]Récupérer les indices d'une cellule qui a changé


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre confirmé
    Profil pro
    Enseignant
    Inscrit en
    Avril 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2004
    Messages : 440
    Points : 451
    Points
    451
    Par défaut [TableModel]Récupérer les indices d'une cellule qui a changé
    Bonjour,

    J'aimerais savoir comment on fait pour récupérer les indices de la cellule qui vient de changer dans un DefaultTableModel.
    Je me doute qu'il faut ajouter un Listener, mais je ne trouve pas la méthode.
    Voici mon code :

    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
        
    ...
    static DefaultTableModel modelConso;
    ...
    Dans le constructeur : 
    modelConso = new DefaultTableModel(numRowData, numColData);  
    modelConso.addTableModelListener(new ModelConsoListener());
    ...
    
    class ModelConsoListener implements TableModelListener
    {
    	public void tableChanged(TableModelEvent arg0) 
           {
    			
            //Ici : récupérer indices de la cellule qui a changé
            int row = modelConso.getActiveRow(); // un truc du genre
            int column = modelConso.getActiveColumn(); // un truc du genre 
             
            System.out.println("Col : " + column);       
    	modelConso.setValueAt(modelConso.getTotal(row), row, columnTotal);
    	}  	
    }
    Donc voilà, évidemment, mes méthodes getActiveRow() et getActiveColumn() n'existent pas, et j'aimerais donc savoir comment faire.

    Mathieu.

  2. #2
    Membre confirmé
    Profil pro
    Enseignant
    Inscrit en
    Avril 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2004
    Messages : 440
    Points : 451
    Points
    451
    Par défaut
    Bon, j'ai fini par trouver (seul ) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        class ModelConsoListener implements TableModelListener
        {
     
    		@Override
    		public void tableChanged(TableModelEvent arg0) 
                   {
    			int changedRow = arg0.getFirstRow();		
    			int changedCol = arg0.getColumn();	
                            //....
                   }
        }
    Tout simplement... C'est vrai que je n'avais pas pensé à utiliser le TableModelEvent...

    A+

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

Discussions similaires

  1. [XL-2007] Récupérer les propriétés d'une cellule
    Par gg64480 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/04/2014, 18h54
  2. Réponses: 6
    Dernier message: 28/01/2012, 19h02
  3. Réponses: 5
    Dernier message: 27/04/2010, 14h55
  4. récupérer les données d'une cellule depuis un UserForm
    Par domy59 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/12/2008, 00h09
  5. Réponses: 1
    Dernier message: 06/02/2008, 09h10

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