JTable cellule éditable et non-éditable

Fermé
bassou02 Messages postés 7 Date d'inscription mercredi 19 décembre 2007 Statut Membre Dernière intervention 7 janvier 2008 - 7 janv. 2008 à 10:57
 Chepo - 8 juil. 2010 à 08:51
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

2 réponses

rthriller Messages postés 1 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 22 janvier 2008 4
22 janv. 2008 à 23:33
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
4
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;

}

};
4