Hola,
Cita:
Iniciado por oscarkof ... necesito incluir el boton para eliminar ese registro a donde esta asociado me comprende o sea necesito obtener los datos de ese row... no entiendo como programar el codigo para cada fila? o es el mismo para todas????
En el código anterior se implementó dentro de la clase AbstractCellEditor, una variable privada llamada 'jTable1', que se recibe en el constructor ... y está comentada en el método 'actionPerformed', está comentada por que en ese ejemplo esa variable no tiene ningún uso ... pero ...
Cita:
Iniciado por HackmanC
Código:
public class myeditor extends AbstractCellEditor implements TableCellEditor, ActionListener {
...
private JTable jTable1;
public myeditor(JTable jTable1) {
....
this.jTable1 = jTable1;
}
public void actionPerformed(ActionEvent e) {
// mymodel t = (mymodel) jTable1.getModel();
// t.addNewRecord();
fireEditingStopped();
}
...
}
... el objetivo es tener acceso al modelo de datos desde el evento del botón, cuando se presiona el botón, se llama al evento actionPerformed, y desde allí puedes agregar o eliminar filas al TableModel.
Lo único que hace falta es saber cual es la fila seleccionada, el JTable tiene un método 'editingRow' que debe devolver el indice de dicha fila, (o puedes usar getSelectedRows).
Una vez obtenido puedes eliminarlo del table model y llamar el método fireTableDataChanged() o fireTableRowsDeleted() después de fireEditingStopped(), para que el JTable muestre los cambios.
Saludos,
ps:
El TableModel tiene que ser uno personalizado, tienes que hacer una clase que implemente la interfaz AbstractTableModel, que tenga acceso directo a una Lista de valores (LinkedList, etc), donde se puede agregar y eliminar. Si usas Arrays para llenar la Tabla no se pueden eliminar ni agregar filas, por que los Arrays son inmutables (creo !?
).