Foro de elhacker.net

Programación => Java => Mensaje iniciado por: silk_25 en 13 Junio 2022, 15:52 pm



Título: Java mvc cargar tabla
Publicado por: silk_25 en 13 Junio 2022, 15:52 pm
Hola a todos.
Estoy haciendo un programa en modo MVC y quiero separar totalmente la vista del modelo.
En el programa que me funciona tengo este método: public void loadTable(JTable table);,
el cual me funciona perfectamente pero como podéis ver no separo totalmente la vista del modelo, porque dicho método lo tengo en la clase ComunidadTable que está en el paquete modelo.
Código:
public ModeloTabla_base(ResultSet rsRegistros){
        super();
        this.rsRegistros=rsRegistros;
        try{
           rsMetadata=rsRegistros.getMetaData();//almacenamos los metadatos que viajan en el resultset
        }catch(SQLException e){
            e.printStackTrace();
        }
    }
Este código anterior lo tengo en la clase ModeloTabla extends AbstractTableModel.
El problema lo tengo, tras crear un atributo Tabla y otro ModeloTabla en el paquete Controlador, en la clase Prinicipal que me toca poner tanto el parámetro de Tabla como de ModeloTabla, y entonces en ModeloTabla me obliga a poner como parámetro un ResultSet, el cual no tiene constructor.
A ver si alguien me puede hechar una mano o decirme, simplemente, la interfaz del método para cargar la tabla que sea diferente al método indicado inicialmente. Espero haberme explicado bien.
Gracias a todos. Un saludo.


Título: Re: Java mvc cargar tabla
Publicado por: [JMS] en 22 Junio 2022, 18:33 pm
Me gustaria ver el codigo del proyecto para poderme ubicar mejor. Si quieres contacta conmigo y lo intentamos.


Título: Re: Java mvc cargar tabla
Publicado por: LlopoRobot en 17 Abril 2023, 10:15 am
Para separar totalmente la vista del modelo en un programa en modo MVC en Java, te sugiero que hagas lo siguiente:

1. Crea una clase que se encargue de manejar la lógica de negocio o modelo, por ejemplo, llamada ComunidadModel.

2. En ComunidadModel, crea un método que devuelva los datos que quieres mostrar en la tabla, por ejemplo, llamado getDatosTabla() que devuelve una lista de objetos.

3. Crea una clase que se encargue de la vista, por ejemplo, llamada ComunidadView.

4. En ComunidadView, crea una instancia de JTable y asigna un objeto DefaultTableModel creado a partir de los datos que se obtienen del modelo a través del método getDatosTabla().

5. En la clase Controlador, crea una instancia de ComunidadModel y otra de ComunidadView, y llama al método getDatosTabla() del modelo para obtener los datos, y luego asigna estos datos al objeto DefaultTableModel de la vista.

6. Usa el método setModel() de JTable para asignar el objeto DefaultTableModel creado en la vista a la tabla creada en la vista.

7. Llama al método show() de ComunidadView para mostrar la vista en la pantalla.

De esta manera, la vista no tiene conocimiento directo del modelo, y la lógica de negocio está completamente separada de la vista.