bloque4:mvc
Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
bloque4:mvc [12/03/2018 10:42] – [Vista] Fernando Valdeón | bloque4:mvc [16/09/2024 20:53] (actual) – editor externo 127.0.0.1 | ||
---|---|---|---|
Línea 9: | Línea 9: | ||
* El **controlador** es la capa que comunica a las otras dos. Al llamar a su constructor, | * El **controlador** es la capa que comunica a las otras dos. Al llamar a su constructor, | ||
- | ==== Vista ==== | + | Resulta aconsejable que al menos las clases que representan el modelo, la vista y el controlador **estén dentro del mismo paquete** ('' |
+ | |||
+ | ===== Vista ===== | ||
Todos los componentes gráficos (botones que se puedan pulsar, campos de texto de los que obtener datos, cajas de texto, etc) que quiera gestionar desde el controlador deben tener visibilidad (default). | Todos los componentes gráficos (botones que se puedan pulsar, campos de texto de los que obtener datos, cajas de texto, etc) que quiera gestionar desde el controlador deben tener visibilidad (default). | ||
<code java> | <code java> | ||
Línea 17: | Línea 19: | ||
JTextField textNombre; | JTextField textNombre; | ||
JTextField textApellidos; | JTextField textApellidos; | ||
- | ... //Todos los componentes swing que gestione desde el controlador | + | ... |
+ | | ||
| | ||
| | ||
Línea 28: | Línea 31: | ||
setTitle(" | setTitle(" | ||
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); | setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); | ||
- | ... //resto del código generado por WindowBuilder | + | ... |
+ | | ||
| | ||
set visible(true); | set visible(true); | ||
Línea 35: | Línea 39: | ||
</ | </ | ||
- | ==== Controlador ==== | + | |
+ | |||
+ | ===== Modelo ===== | ||
+ | El modelo es la clase que maneja los datos de la aplicación y permite las operaciones. | ||
+ | Los puede obtener desde un fichero o desde una base de datos. Puede cargar esos datos en una estructura como el ArrayList o leerlos cada vez. No tiene ningún conocimiento ni interacción con la vista, y devuelve y recibe los datos tal cual se los pide el controlador. | ||
+ | |||
+ | <code java> | ||
+ | public class Modelo{ | ||
+ | // | ||
+ | | ||
+ | ... | ||
+ | |||
+ | | ||
+ | listaPersonas = new ArrayList< | ||
+ | } | ||
+ | |||
+ | |||
+ | // | ||
+ | | ||
+ | return listaPersonas; | ||
+ | } | ||
+ | |||
+ | |||
+ | // | ||
+ | | ||
+ | | ||
+ | | ||
+ | } | ||
+ | |||
+ | ... | ||
+ | |||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Controlador | ||
La clase Controlador añade los manejadores de eventos (listeners) a cada elemento de la vista que lo provoque. En el momento de añadir los listeners también los creamos, o sea generamos el código de respuesta a ese evento. //Qué pasa cuando se pulsa un botón//. | La clase Controlador añade los manejadores de eventos (listeners) a cada elemento de la vista que lo provoque. En el momento de añadir los listeners también los creamos, o sea generamos el código de respuesta a ese evento. //Qué pasa cuando se pulsa un botón//. | ||
Línea 67: | Línea 106: | ||
</ | </ | ||
- | ==== Modelo | + | ==== Controlador implementando interfaces |
- | El modelo es la clase que maneja los datos de la aplicación y permite | + | Otra forma mucho más elegante de implementar |
- | Los puede obtener desde un fichero o desde una base de datos. Puede cargar esos datos en una estructura como el ArrayList o leerlos | + | |
<code java> | <code java> | ||
- | public class Modelo{ | + | public class Controlador implements ActionListener{ |
- | //Lista con los datos que gestiona mi aplicación | + | |
- | | + | private |
- | ... | + | |
- | | + | // |
- | | + | public |
- | | + | |
- | } | + | |
- | | + | |
- | | + | |
- | | + | } |
- | | + | |
- | | + | |
- | | + | public |
- | | + | vista.botonNuevo.addActionListener(listener); |
- | | + | vista.botonEliminar.addActionListener(listener); |
- | | + | |
- | | + | |
- | Persona nuevaPersona | + | // |
- | listaPersonas.add(nuevaPersona); | + | //Es el encargado de gestionar |
- | } | + | |
- | | + | |
- | | + | String comando |
- | | + | |
+ | | ||
+ | case " | ||
+ | // | ||
+ | break; | ||
+ | case " | ||
+ | //codigo para el boton eliminar | ||
+ | break; | ||
+ | |||
+ | | ||
+ | } | ||
+ | } | ||
+ | | ||
} | } | ||
</ | </ | ||
+ | |||
+ | ===== Lanzar la aplicación ===== | ||
Por último desde una clase con un método main lanzo la aplicación, | Por último desde una clase con un método main lanzo la aplicación, | ||
bloque4/mvc.1520851345.txt.gz · Última modificación: 16/09/2024 20:53 (editor externo)