Ver Mensaje Individual
  #12 (permalink)  
Antiguo 29/11/2008, 22:07
Avatar de HackmanC
HackmanC
 
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Agregar JButton a JTable

Hola,

Cita:
Iniciado por oscarkof Ver Mensaje
... 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 Ver Mensaje
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 !? ).

Última edición por HackmanC; 29/11/2008 a las 22:20 Razón: ps