JTable cellule éditable et non-éditable

Bonjour,
Je programme en Java 1.6.
J'aimerais savoir s'il est possible de spécifier les cellules éditables et non éditables dans une JTable.
Par défaut, toutes les cellules sont éditables. Est-ce qu'il est possible de dire que certaines cellules ne peuvent pas être éditées?
Merci
Configuration: Windows XP
Firefox 2.0.0.11

2 réponses

  1. Bonjour!

    Il faudra créer un TableModel personnalisé, où tu override la fonction isCellEdiatble();

    
    public class MyTableModel extends DefaultTableModel {
    
        @Override
        public boolean isCellEditable(int rowIndex, int columnIndex) {
            
            //ici la cellule (1, 2) est non-editable
            if (rowIndex == 1 && columnIndex == 2) return false;
            
            //le reste est editable
            return true;
        }
    }
    
    


    si tu veux qu'une colonne entière soit non editable tu teste uniquement sur l'index de la colonne :
    if (columnIndex == 5) return false; //ici la colonne 5 n'est pas éditable.

    Voilà, bon code
    1. Encore plus facile si on ne veux pas créer une classe supplémentaire pour diverses raisons:

      JTable aTable = new JTable(list,columns) {

      public boolean isCellEditable(int row, int column) {

      return false;

      }

      };