Java - eliminar fila jtable

   
Vista:

eliminar fila jtable

Publicado por rasof (2 intervenciones) el 17/12/2009 10:34:27
holaa buenas he creado un frame en el que tengo un jtable. y lo ke kiero es eliminar un fila. para ello hago lo siguiente:

DefaultTableModel modelo = (DefaultTableModel)tablaLineas.getModel();

modelo.removeRow(fila);

las tablas esta creadas con la ayuda que te da netbeans. (Soy nuevo en netbeans)

y me da el siguiente error:

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: org.jdesktop.swingbinding.JTableBinding$BindingTableModel cannot be cast to javax.swing.table.DefaultTableModel


alguien me podria decir de que manera podria solucionarlo? o bien de que manera podria hacer un refresh de la tabla?

un saludo y gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:eliminar fila jtable

Publicado por Octavio (74 intervenciones) el 17/12/2009 11:07:05
Mira amigo tengo una clase que suelo usar para manejar los JTables (Borra, clona y demas) te la paso, FUNCIONA CORRECTAMENTE, yo la uso hace tiempo y nunca tengo problemas, si con esta clase sigues teniendo inconvenientes es porque el error esta en algo de tu codigo, de ultima me agregas al MSN y lo vemos (octicoco @ ho.t....)

CODIGO:

import javax.swing.*;
import javax.swing.table.*;

public class ManejadorDeJTables {

public DefaultTableModel actualizarTablaPorCampo(String campo, int columna, DefaultTableModel dtm){
int indice = 0;
while (indice < dtm.getRowCount()){
//System.out.println(nombre + " contiene " + campo +"??? " +(nombre.toUpperCase().contains(campo.toUpperCase())));
System.out.println(indice+" "+columna);
String nombre = dtm.getValueAt(indice, columna).toString();
if (nombre.toUpperCase().contains(campo.toUpperCase())){
indice++;
} else {
dtm.removeRow(indice);
}
}
return dtm;
}

public void cargarDatosTabla(JTable tabla, String[] titulos, Object[][] datos, DefaultTableModel dtm){
dtm = new DefaultTableModel(datos, titulos);
tabla.setModel(dtm);
}

public void cambiarAnchoColumna(JTable tabla, String tituloColumna, int ancho){
TableColumn tc = tabla.getColumn(tituloColumna);
tc.setPreferredWidth(ancho);
}

public DefaultTableModel clonarDefaultTableModel(DefaultTableModel original, int hastaColumna){
Object[][] datos = new Object[original.getRowCount()][hastaColumna];
String[] titulos = new String[hastaColumna];
for (int fila = 0; fila < original.getRowCount(); fila++){
for (int columna = 0; columna < hastaColumna; columna++){
datos[fila][columna] = original.getValueAt(fila, columna);
if (fila == 0){
titulos[columna] = original.getColumnName(columna);
System.out.println("copiando dato "+original.getColumnName(columna));
}
}
}
DefaultTableModel clon = new DefaultTableModel(datos, titulos);
return clon;
}

public void alinearAlCentro(JTable tabla, int columna){
DefaultTableCellRenderer tcr = new DefaultTableCellRenderer();
tcr.setHorizontalAlignment(SwingConstants.CENTER);
tabla.getColumnModel().getColumn(columna).setCellRenderer(tcr);
}

}

SOLO TIENES QUE CREAR UN OBJETO DE ESTA CLASE Y LLAMAR AL METODO ACTUALIZARTABLAPORCAMPO(...) Y SI ACTUALIZA CORRECTAMENTE ES QUE ESTA BORRANDO.

SALUDOS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:eliminar fila jtable

Publicado por rambo (60 intervenciones) el 18/12/2009 05:28:48
pero ese error, no es de eliminar
es de un casteo fallido del default tablemodel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:eliminar fila jtable

Publicado por rasof (35 intervenciones) el 18/12/2009 09:09:47
y como lo hago?

se que el fallo da en esta sentencia:

DefaultTableModel modelo = (DefaultTableModel)tablaLineas.getModel();

y si hago esto:

TableModel modelo = tablaLineas.getModel();

no me deja hacer un removeRow();

modelo.removeRow(fila);//esto da fallo y no me deja hacerlo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:eliminar fila jtable

Publicado por jack (18 intervenciones) el 18/12/2009 15:51:24
hola rasof
mira he probado el codigo que pusiste al principio y no tiene ningun problema me funciono perfectamente lo probe en netbeans 6.7 y pues como te digo no tiene ningun problema asi que el problema debe ser otro, no hay problema con el casting

DefaultTableModel modelo = (DefaultTableModel) tablaLineas.getModel();
modelo.removeRow(fila);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:eliminar fila jtable

Publicado por Alex (2 intervenciones) el 26/12/2009 12:56:33
Buenas, creo que te puedo ayudar.

Cuando haces el modelo.removeRow() y le pasas como parámetro fila, fila en ningún momento lo has

declarado. Es decir, si quieres eliminar la primera fila puedes hacer esto:

modelo.removeRow(1); (creo recordar que empieza por 1..).

Era eso lo que pedías? Dímelo y si no es así intentaré ayudarte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:eliminar fila jtable

Publicado por joel vasquez (1 intervención) el 27/11/2012 05:44:12
Si es coreccto, yo igual lo use no importa la version por que yo lo use en NetBeans version 7.2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar