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
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