Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Columnas editables en jtable

buen dia a todos, mi consulta es la siguiente, estoy trabajando en una tabla cuyas columnas deben cambiar dependiendo del valor en la primera columna osea:

1 2 3
3 2 1

la idea seria que al modificar por ejemplo el valor de 1 los siguientes valores osea el 2 y 3 deben deshabilitarse, volverse ineditables, el codigo que uso para llenar la tabla es el siguiente:


public void llenarTabla(JTable tabla, Object [] grilla) {
Object[][] listaDetalles = new Object[grilla.length][5];
for (int i = 0; i < grilla.length; i++) {
DatGrilla dg = (DatGrilla)grilla[i];
listaDetalles[i][0]=dg.getNumero();
listaDetalles[i][1]=dg.getPleno();
listaDetalles[i][2]=dg.getCombinado();
listaDetalles[i][3]=dg.getCuña();
listaDetalles[i][4]=dg.getUña();
}
if (grilla.length==0) {
listaDetalles=new Object[0][4];
}

tabla.setModel(new javax.swing.table.DefaultTableModel(listaDetalles,new String [] {"Numero","Pleno","Combinado","Cuña","uña"})
{Class[] types = new Class [] {Integer.class, Integer.class, Integer.class, Integer.class, Integer.class};
boolean[] canEdit = new boolean [] {false,true,true,true,true};
public Class getColumnClass(int columnIndex) {
return types [columnIndex];
}
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
});
tabla.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);
tabla.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
tabla.getTableHeader().setReorderingAllowed(false);
//JScrollPane.setViewportView(muestraSocios);
tabla.getColumnModel().getSelectionModel().setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
tabla.getColumnModel().getColumn(0).setResizable(false);
tabla.getColumnModel().getColumn(0).setPreferredWidth(82);
tabla.getColumnModel().getColumn(1).setResizable(false);
tabla.getColumnModel().getColumn(1).setPreferredWidth(82);
tabla.getColumnModel().getColumn(2).setResizable(false);
tabla.getColumnModel().getColumn(2).setPreferredWidth(82);
tabla.getColumnModel().getColumn(3).setResizable(false);
tabla.getColumnModel().getColumn(3).setPreferredWidth(82);
tabla.getColumnModel().getColumn(4).setResizable(false);
tabla.getColumnModel().getColumn(4).setPreferredWidth(82);
}

lo que hace ese metodo es llenar la tabla con una lista que recibe, la idea seria editar las filas una a una por separado

enero 20, 2015 | Unregistered Commenterarnoldo salcedo