Quiero eliminar algunas filas de una JTable. ¿Cómo puedo hacerlo?¿Cómo eliminar una fila de JTable?
Respuesta
Una JTable normalmente forma la parte Vista de una implementación de MVC. Querrá eliminar filas de su modelo. JTable, que debería estar atento a estos cambios, se actualizará para reflejar esta eliminación. Por lo tanto, no encontrará removeRow() o similar como método en JTable.
gracias por la ayuda, pero quiero saber cómo eliminar filas de el modelo de tabla, no estoy obteniendo ningún método. –
Lea detenidamente cosas como: http://java.sun.com/docs/books/tutorial/uiswing/components/table.html – dave
En resumen, crea un modelo de tabla personalizado. JTable no almacena las filas, sino que las delega a TableModel. Puede subclasificar de AbstractTableModel si lo desea. Llame a fireTableRowsDeleted() cada vez que borre filas. – dave
Mira el DefaultTableModel para un modelo simple que se puede utilizar:
http://java.sun.com/javase/6/docs/api/javax/swing/table/DefaultTableModel.html
Esto amplía la AbstractTableModel, pero debería ser suficiente para los propósitos básicos. Siempre puedes extender AbstractTableModel y crear el tuyo propio. Asegúrese de configurarlo también en la JTable.
http://java.sun.com/javase/6/docs/api/javax/swing/table/AbstractTableModel.html
Mira el tutorial básico Sun para obtener más información sobre el uso del JTable con el modelo de tabla:
http://java.sun.com/docs/books/tutorial/uiswing/components/table.html#data
Con el fin de eliminar una fila de un JTable, tiene que quitar la fila de destino del TableModel subyacente. Si, por ejemplo, su TableModel es una instancia de DefaultTableModel, puede eliminar una fila de la siguiente manera:
((DefaultTableModel)myJTable.getModel()).removeRow(rowToRemove);
gracias por la ayuda, pero he usado este método y no está funcionando. en realidad, mi JTable está usando el modelo de tabla LocationTable (creado por mí mismo) modelo de tabla abstracta extendind así que cuando estoy usando el método removeRow (i) está dando error ya que "no puedo resolver removeRow()" ... qué alternativa usaré ... –
Bueno si creó su propio TableModel personalizado, entonces usted es responsable de crear su propio método "removeRow". Mire el código fuente del DefaultTableModel para ver cómo se hace esto. La solución fácil es usar el DefaultTableModel. ¿Por qué crees que necesitas crear un TableModel personalizado? Hasta que comprenda los conceptos básicos del uso de modelos, use los valores predeterminados proporcionados. – camickr
La forma correcta de aplicar un filtro a un JTable es a través de la interfaz añadió a una TableRowSorter RowFilter. Usando esta interfaz, la vista de un modelo se puede cambiar sin cambiar el modelo subyacente. Esta estrategia preserva el paradigma Modelo-Vista-Controlador, mientras que la eliminación de las filas que desea ocultar del modelo en sí rompe el paradigma al confundir su separación de preocupaciones.
Si necesita una solución de trabajo simple, intente con DefaultTableModel.
Si ha creado su propio modelo de tabla, que extiende AbstractTableModel, también debe implementar el método removeRow(). La implementación exacta depende de la estructura subyacente, que haya utilizado para almacenar datos.
Por ejemplo, si ha utilizado vector, entonces puede ser algo como esto:
public class SimpleTableModel extends AbstractTableModel {
private Vector<String> columnNames = new Vector<String>();
// Each value in the vector is a row; String[] - row data;
private Vector<String[]> data = new Vector<String[]>();
...
public String getValueAt(int row, int col) {
return data.get(row)[col];
}
...
public void removeRow(int row) {
data.removeElementAt(row);
}
}
Si ha utilizado la lista, entonces sería muy parecidos:
// Each item in the list is a row; String[] - row data;
List<String[]> arr = new ArrayList<String[]>();
public void removeRow(int row) {
data.remove(row);
}
HashMap :
//Integer - row number; String[] - row data;
HashMap<Integer, String[]> data = new HashMap<Integer, String[]>();
public void removeRow(Integer row) {
data.remove(row);
}
Y si está utilizando matrices como éste
String[][] data = { { "a", "b" }, { "c", "d" } };
, entonces no tiene suerte, porque no hay forma de eliminar dinámicamente los elementos de las matrices. Puede tratar de usar matrices almacenando por separado algunas banderas que notifiquen qué filas se borran y cuáles no, o de alguna otra forma desviada, pero aconsejaría que no lo haga ... Eso introduciría una complejidad innecesaria, y de hecho solo sería resolver un problema creando otro. Esa es una forma segura de terminar con here. Pruebe una de las formas anteriores para almacenar los datos de su tabla en su lugar.
Para una mejor comprensión de cómo funciona esto, y qué hacer para hacer su propio modelo de trabajo correctamente, creo firmementeaconsejo que consulte a Java Tutorial, DefaultTableModel API y es source code.
mmm es muy simples chicos
for(int i = model.getRowCount() - 1; i >= 0; i--)
{
model.removeRow(i);
}
Nada como millones de notificaciones en la mañana ;-) – greenoldman
- 1. Mover una fila de JTable
- 2. ¿Cómo agregar una fila en JTable?
- 3. JTable encabezado de fila Implementación
- 4. Seleccionar mediante programación una fila en JTable
- 5. Cómo desplazarse a la última fila en una JTable
- 6. Cómo establecer un objeto personalizado en una fila JTable
- 7. ¿Cómo eliminar todas las columnas de JTable?
- 8. Scroll un JScrollPane a una fila específica en un JTable
- 9. Cómo implementar jtable con altura de fila variable
- 10. Cómo eliminar una fila de una tabla en iPhone
- 11. ¿Cómo puedo determinar qué celda de una JTable se seleccionó?
- 12. Cómo eliminar una fila de la Tabla de Celdas
- 13. Eliminar filas duplicadas y mantenga una fila
- 14. Java: cómo seleccionar una sola celda en una JTable y no toda la fila
- 15. JTable fila hightlighter basado en el valor de TableCell
- 16. ¿Cómo se puede arrastrar y soltar una fila en una JTable?
- 17. Rendimiento de columna y tramo de fila Jtable
- 18. ¿Cómo hacer una fila JTable a un estado "no seleccionado" después de seleccionar cualquier fila en esa tabla?
- 19. JTable cambiar la altura de la fila dinámicamente
- 20. Cómo agregar el botón en una fila de JTable en Swing java
- 21. Compruebe si es seguro eliminar una fila
- 22. Eliminar fila si existe
- 23. ¿Cómo borrar los contenidos de una jTable?
- 24. ¿Cómo obtener datos de una JTable?
- 25. Cómo eliminar una fila en la matriz bidimensional
- 26. jQuery Datatables: cómo eliminar la fila
- 27. tabla Eliminar fila usando jQuery
- 28. Eliminar una fila de una tabla por id
- 29. eliminar el borde de las celdas en un jtable
- 30. Cómo mantener JTable en la celda editada
Consejo: si se le explica lo que ya han intentado, y lo que en línea tutoriales que ha leído, la gente va a estar más dispuestos a ayudarte. O da un código de muestra y dinos qué bit no funciona. Lea esto si aún no lo ha hecho: http://java.sun.com/docs/books/tutorial/uiswing/components/table.html –