Hola a todos,
tengo una tabla en la que me he definido una clase con su modelo de datos. La tabla he puesto que se pueda ordenar por columnas haciendo table.setRowSorter(new TableRowSorter(mymodel)); En la aplicación tengo dos botones uno para añadri una nueva fila y otro para borrar una fila. Cuando borro una fila, se hace bien, porque cojo las filas selectionadas y convierto los indices de la vista (ordenada) a indices del modelo(fila[i]=((ContactosJTable)Tabla).convertRowIndexToModel(f ila[i]);). También se modifica bien, pues las modificaciones se hacen cuando se llama a setValue del modelo e imagino que de llamará con los indices adecuados.
El problema lo tengo a añadir una fila, me salta la siguiente excepción:
Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Invalid range
at javax.swing.DefaultRowSorter.checkAgainstModel(Unk nown Source)
at javax.swing.DefaultRowSorter.rowsInserted(Unknown Source)
at javax.swing.JTable.notifySorter(Unknown Source)
at javax.swing.JTable.sortedTableChanged(Unknown Source)
at javax.swing.JTable.tableChanged(Unknown Source)
at javax.swing.table.AbstractTableModel.fireTableChan ged(Unknown Source)
at javax.swing.table.AbstractTableModel.fireTableRows Inserted(Unknown Source)
at view.ContactosJTablaModel.addNewRow(ContactosJTabl aModel.java:152)...........................
La verdad es que no se, cuando tengo la tabla ordenada y le doy a añadir, en mi modelo lo que hago es añadir una fila vacía al final del modelo de los datos, el problema me imagino que será que en la vista de la tabla ordenada no se ha añadido esa fila, y la verdad es que no se como corregir eso.
¿Me pueden ayudar por favor?
Muchas gracias