AbstractTableModel

mdrcedrick Messages postés 54 Date d'inscription dimanche 12 septembre 2004 Statut Membre Dernière intervention 22 novembre 2007 - 2 oct. 2007 à 09:25
mdrcedrick Messages postés 54 Date d'inscription dimanche 12 septembre 2004 Statut Membre Dernière intervention 22 novembre 2007 - 3 oct. 2007 à 14:01
Bonjour, j'ai fait une JTable dans mon projet en utilisation un modèle (chose que je ne faisais pas avant).


Avant justement quand je cliquais sur une cellule de ma quatrième
colonne je récupérais les coordonnées de la cellule, j'ouvrais un
InputDialog et je rentrais dans ma cellule la valeur donnée par
l'utilisateur dans l'InputDialog et tout fonctionnait impeccablement.


Or depuis que j'utilise mon modèle je peux toujours ouvrir mon
InputDialog en fonction de ma colonne sauf que la valeur que je rentre
ne s'inscrit pas dans ma cellule par la suite.



Voilà mon code ca sera certainement plus simple à comprendre :

//récupère le nombre de clicks

int        nbClick    =        eME.getClickCount ();

       
// récupère les coordonnées de la cellule cliquée dans la JTable

int     colonne       
=        this.maTable.getSelectedColumn
    ();

int    ligne       
        =   
    this.maTable.getSelectedRow   
    ();

       

if (nbClick 1 & colonne 6) //cas du clic dans la colonne "remise"

{

    String       
remise        =   
    JOptionPane.showInputDialog(null, "Quelle remise
voulez-vous effectuer ? (en %)");

    if (remise.equals("0") || remise.equals(""))

    {

        this.maTable.setValueAt("", ligne, colonne);

    }

    else

    {

       
this.maTable.setValueAt       
    (remise + " %", ligne, colonne);
       ///...... fonctions diverses

    }

}


puis mon modèle

public        
  VenteTableModel       
           
(Vector<Vector<Object>> vecteurDonnée, Vector<String>
vecteurEnTete)

{

    this.donnees         =         vecteurDonnée;

    this.titres        
    =        
vecteurEnTete;


       public    
    int        
           
    getColumnCount       
            ()

       {

           return titres.size();

       }


       public    
    Object        
        getValueAt   
           
           
    (int ligne, int colonne)

       {

           return donnees.get(ligne).get(colonne);

       }


       public    
    int        
           
    getRowCount       
           
        ()

       {

           return donnees.size();

       }

      

       public    
    String        
           
getColumnName           
        (int col)

       {

         return titres.elementAt(col);

       }

      

       public    
    Class        
           
getColumnClass           
            (int c)

       {

           return getValueAt(0, c).getClass();

       }

       

       public    
    boolean        
        isCellEditable   
           
            (int row, int
col)

       {

           // toutes les cellules éditables :

           return true;

           //return row ==0;

           //return col == 3;

       }

}

j'ai pensé redéfinir la méthode setValueAt(.....)
dans mon modèle mais là j'ai eu des erreurs partout donc je ne pense
pas que ca vienne de là ...


merci d'avance pour votre aide


don't cross the crocked step

2 réponses

KenZara Messages postés 112 Date d'inscription vendredi 24 décembre 2004 Statut Membre Dernière intervention 20 décembre 2011
3 oct. 2007 à 12:14
Bonjour,

Permets moi de te dire que je vois pas "setValueAt" dans ton model.


C'est bizarre parce qu'à priori ca devrait marcher ...


Kenza
0
mdrcedrick Messages postés 54 Date d'inscription dimanche 12 septembre 2004 Statut Membre Dernière intervention 22 novembre 2007
3 oct. 2007 à 14:01
oui je l'ai enlevé car ca ne fonctionnait pas plus qu'avant ...





don't cross the crocked step
0
Rejoignez-nous