Ver Mensaje Individual
  #2 (permalink)  
Antiguo 20/12/2007, 08:18
Avatar de TolaWare
TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 10 meses
Puntos: 24
Re: problemas con el jtable

La forma más fácil de hacer esto, es crear una clase que herede de DefaultTableModel, y que sobreescribas el método isCellEditable().

Por ejemplo:

Código:
public class MyDefaultTableModel extends javax.swing.table.DefaultTableModel {

    public boolean isCellEditable(int rowIndex, int columnIndex) {
        return false;
    }

}
De esa manera, ninguna celda será editable.

Si quieres algo más genérico, podrías colocarle un atributo a la clase de tipo vector de boolean y que según la columna que te pregunten si es editable, respondas true o flase:

Código:
public class MyDefaultTableModel extends javax.swing.table.DefaultTableModel {

    private boolean esEditable[];

    public boolean setEsEditable(boolean[] editables) {
        this.esEditable = editables;
    }

    public boolean isCellEditable(int rowIndex, int columnIndex) {
        return esEditable[columnIndex];
    }

}
Para usar esa clase simplemente cuando creas una instancia del MyDefaultTableModel, le asignas qué columnas querés que sean editables: por ejemplo:

Código:
MyDefaultTableModel modelo = new MyDefaultTableModel();
modelo.setEsEditable(new boolean[] {true,true,false});
Con ese ejemplo, harías que las 2 primeras columnas sean editables y la tercera no.