Colonne éditable dans un jTable

Signaler
Messages postés
28
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2009
-
Messages postés
491
Date d'inscription
samedi 20 mai 2006
Statut
Membre
Dernière intervention
15 juillet 2012
-
je suis en train de développer une application java avec Netbeans et Swing. Je veux insérer une colonne éditable et qui est remplie à partis de la base de données de type jcheckBox dans un jTable, ça va c'est fait.
Lors de l'execution de l'application la colonne n'est pas éditable.
Malgré que dans la propriété du jTable model j'ai coché la cellule pour la rendre éditable?
Voici mon code ds la classe ContactsTableModel

 public ContactsTableModel(ResultSet rs)
       {
         ResultSets=new ArrayList<Object[]>();    
         try
          {
           while(rs.next())
             {
               if(rs.getString("CONTACTPRINCIPAL").equals("1"))
               {
                Object[] row={
                rs.getString("codecontact"), rs.getString("prenom"),rs.getString("nom"),rs.getString("telephone1"),rs.getString("telephone2"),rs.getString("lienclientcontact"),Boolean.TRUE        
              };
                ResultSets.add(row);
               }
               else
                   {
                Object[] row={
                rs.getString("codecontact"), rs.getString("prenom"),rs.getString("nom"),rs.getString("telephone1"),rs.getString("telephone2"),rs.getString("lienclientcontact"),Boolean.FALSE        
              };
                ResultSets.add(row);
               }
               
             }   
          }
         catch(Exception e)
          {
            System.out.println("Exception in ContactsTableModel");
          }    
      }  

Merci d'avance.

2 réponses

Messages postés
744
Date d'inscription
dimanche 1 avril 2007
Statut
Membre
Dernière intervention
9 mai 2010
8
Salut,

Et est ce que tu te serais pas trompé en rendant le(s) cellulles que tu voulais éditable?
Genre au lieu de mettre la case de la ligne 3 et colonne 4 éditable tu aurais changé pour une autre?
Est ce que dans toute ta JTable il n'y a aucune cellulle editable?
Tu as réécris toi même une classe extends AbstractTableModel?

<hr width="100%" size="2" />
 C'est après des heures de codage que j'ai compris pourquoi les créateurs de Java ont choisi une tasse de café comme logo...
Messages postés
491
Date d'inscription
samedi 20 mai 2006
Statut
Membre
Dernière intervention
15 juillet 2012
10
> Malgré que dans la propriété du jTable model j'ai coché la cellule pour la rendre éditable?

Dans l'éditeur visuel de NetBeans nous ne pouvons pas adapter notre classe personalisée. Nous sommes obligé de faire tous manuellement dans notre classe. Voici un exemple pour une classe qui hérite  d'AbstractTableModel :

@Override
public boolean isCellEditable(final int row, final int column) {
    if (column < 2) {
        return false;
    } else {
        return true;
    }
}
@Override
public void setValueAt(final Object value, final int row, final int column) {
    resultSets.get(row)[column] = value;
    fireTableCellUpdated(row, column);
}

Dans "isCellEditable" nous retournons "true" pour les indices des colonnes éditables. Dans "setValueAt"  nous faisons la mise à jour de nos données et nous appelons "fireTableCellUpdated".