Acceder Registrarme

Java Modelo de tabla


Por: Carlos Eduardo Rodríguez Carrillo Publicado el: 2018-01-09 15:40:47 Pregunta cerrada

Hola muchachos mi consulta es la siguiente. 

 

Lo que pasa es que usualmente cuando listo datos en java desde una BD, la lista que obtengo en el DAO (ArrayList) la paso a un modelo (Clase que hereda de AbstractTableModel) y finalmente ese modelo se lo pasa a mi tabla en el Controlador. 

Todo muy bien hasta ahora pero ahora necesito hacer una búsqueda, de manera entonces que en el DAO como siempre tengo un método que tiene un parámetro para la búsqueda y que me retorne una lista. 

El problema es que esa lista lo normal sería que se lo pase a un nuevo modelo de tabla pero como no tengo en el Modelo de tabla acceso al dato que vendria a ser el argumento que cité antes porque éste está en la vista no sé qué hacer.

Alguna idea?? 



Java

Usuario de (Perú)

Hola Carlos... suponiendo que haya entendido bien tu pregunta...

Lo que debes hacer es enviar el parámetro desde la vista hacia el controlador para que posteriormente dicho controlador llame a acceso a datos y retorne la información para finalmente retornar los datos hasta la vista como ya lo hiciste antes.

Sólo debes mantener ese flujo y deberás acceder a ese parámetro a través de una petición que generes ya sea vía POST o GET.

  • 2018-01-09 16:20:06
  • Me gusta(0)

Muchas gracias Kevin por tu respuesta, pero lo que pasa es que estoy trabajando con un Modelo de Tabla (que es una clase aparte que hereda de AbstractTableModel) y no sé cómo hacerlo para cuando deseo buscar.

  • 2018-01-09 16:23:43
  • Me gusta(0)
Usuario de (Perú)

Estás trabajando en una aplicación de escritorio o web?

  • 2018-01-09 16:27:19
  • Me gusta(0)

Escritorio.

  • 2018-01-09 16:27:58
  • Me gusta(0)
Usuario de (Perú)

En ese caso lo que debes hacer es leer el model de la tabla como tal... parseando la instancia de la tabla en un "DefaultTableModel" busca en google el uso de o la obtención del DefaultTableModel de un JTable; estoy seguro que esa información te servirá.

  • 2018-01-09 16:30:48
  • Me gusta(0)
Usuario de (Perú)

Si mal no recuerdo, su uso es algo similar a lo siguiente:

DefaultTableModel model=(DefaultTableModel)miJTable.getModel();
  • 2018-01-09 16:33:23
  • Me gusta(0)

Gracias Kevin lo que pasa es que lo estoy intentando con el AbstractTableModel porque según he visto te permite personalizar un poco más tus tablas a diferencia del DefaultTableModel.

  • 2018-01-09 16:37:09
  • Me gusta(1)
Usuario de (Perú)

Recuerdo muy poco, pero si lo he usado... justo un ejemplo de filtro de datos con el AbstractTableModel lo tengo en uno de los productos de Codideep... aquí te dejo el enlace por si te interesa adquirirlo.

http://codideep.com/producto/verporcodigoproducto/201604100000001

  • 2018-01-09 16:40:55
  • Me gusta(0)

Lo que estaba intentando hacer es usar el AbstractTableModel que hasta donde sé es mejor que el DefaultTableModel y que lo implementaba de la siguiente forma: 

  1. Creaba un método en el DAO que me regresara una lista de objetos
  2. Esa lista se la pasaba a la clase Modelo de Tabla que había creado heredando de AbstractTableModel 
  3. En el Controlador hacía que la JTable que había creado seteara el modelo del que hablo en el punto anterio

Y hasta aquí todo bien, el problema es que ahora necesitaba una lista de objetos en función a un parámetro que le pase al método.

La solución consiste en crearle un constructor a la clase Modelo de Tabla y pasarle como argumento una lista, de tal modo que ahora en el controlador tendria posibilidad de tener una lista en función a la búsqueda que realiza mi método.

Para más claridad la solución la encontré en este link: 

https://stackoverflow.com/questions/31283884/java-resultset-and-abstracttablemodel-to-update-jtable

Para alguien que se tope con éste problema =) 

Saludos.

  • 2018-01-11 16:40:29
  • Me gusta(1)

  • Debes estar logueado para realizar comentarios