Aprende Java Aprende Php Aprende C++ Aprende HTML 5 Aprende JavaScript Aprende JSON Aprende MySQL Aprende SQLServer Aprende Visual Basic 6 Aprende PostgreSQL Aprende SQLite Aprende Redis Aprende Kotlin Aprende XML Aprende Linux VSC Aprende Wordpress Aprende Laravel Aprende VueJS Aprende JQuery Aprende Bootstrap Aprende Netbeans Aprende Android
Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube Sigueme en TikTok Sigueme en Whatsapp
Home / Base de Datos / Componentes / iReport / Java / Java / Look and Feel / MVC / Proyectos / Ejemplo práctico de MVC java Swing con Netbeans

Ejemplo práctico de MVC java Swing con Netbeans

Por jc mouse jueves, febrero 9, 2012

Programación de Asignaturas

Modelo Vista Controlador (MVC) es un patrón de arquitectura de software que separa los datos de una aplicación, la interfaz de usuario, y la lógica de negocio en tres componentes distintos. (Según Santa Wikpedia)

Un poco de teoria.

  • Modelo: Esta es la representación específica de la información con la cual el sistema opera. Tambien es la que interactua directamente con la base de datos
  • Vista: Este presenta el modelo en un formato adecuado para interactuar con el sistema, usualmente la interfaz de usuario.
  • Controlador: Este responde a eventos, usualmente acciones del usuario, e invoca peticiones al modelo y, probablemente, a la vista.

Flujo que sigue la implementación de este modelo.

  1. El Usuario interactua con el sistema a travez de la Vista de Usuario (GUI) por ejemplo presionando botones, introducciendo texto, moviendo el mouse por la pantalla, etc.
  2. El Controlador es el que recibe todas estas acciones provocadas por la interaccion Usuario-Interfaz y actua en consecuencia, «Si Evento X entonces realizar Acción Y«.
  3. El controlador entonces accede al Modelo para, dependiendo del evento solicitado, realizar una actualización (registro, edición o eliminado de información) en la base de datos o solicitar información (una consulta por ejemplo).
  4. La información es procesada en modelo-controlador y es el controlador el encargado de generar una salida para el usuario (Mensaje de error si ocurrio un problema, actualización de información presente en pantalla o generar una nueva pantalla).
  5. Entonces la la Interfaz de usuario (Vista) queda otra vez en espera de una acción del usuario del sistema para repetir el ciclo nuevamente.

🙂 Hasta ahi todo bien, es la teoria resumida (espero que bien) de lo que es un Patron MVC (Model, View and Controller) pero nada es la teoria si no la llevamos a la practica, sin embargo debo decir que el patrón MVC es más común en aplicaciones web que en aplicaciones de escritorio, buscando información en la internet son pocas y la gran mayoria información en ingles (sin dibujos 🙁 ) sobre aplicaciones Swing-Java, pero eso no quiere decir que no se pueda, si se puede, y es más Java tiene sus propias herramientas para implementar este patrón (Observer y Observable) pero para este proyecto decidi basarme más en un modelo PHP-MVC que tengo, en el cual la migración no es muy complicada ya que ambos trabajan bajo POO.

Herrammientas utilizadas. Se utilizaron las siguientes tecnologias:

  • IDE Netbeans 6.9
  • Un servidor de Base de Datos MySQL
  • Librerias para el manejo de reportes (JasperReport v3.7.2)

– commons-beanutils-1.8.2.jar
– commons-collections-3.2.1.jar
– commons-digester-1.7.jar
– commons-javaflow-20060411.jar
– commons-logging-1.1.jar
– groovy-all-1.5.5.jar
– iText-2.1.7.jar
– jasperreports-3.7.2.jar

  • Conector *.JAR para Java y MySQL

mysql-connector-java-5.1.6-bin.jar

  • Librerias para el diseño de la interfaz de usuario (Estas librerias son escritas por mi y estan en la Web/Blog)

j2Button.jar: Para el manejo de botones multilinea
JCDesktopPane.jar: Para trabajar con formularios MDI y con imagen de fondo.
jcMousePanel-1.6.9.jar: Para agregar imagenes y degradado a los JPanel.
– jcTablaAsignatura.jar: Este componente simula una pequeña tabla para trabajar con la info de la base de datos.

Todas estas librerias estan dentro el archivo de descarga al final de la página 🙂

  • Un diseñador de reportes JaspertReport o puedes usar tambien el plugin para Netbeans

¿Que necesitas saber?

  • Java Intermedio-Avanzado
  • Lenguaje MySql
  • Uso de Netbeans el IDE que utilizamos para el proyecto (agregar librerias, cambiar propiedades, etc)
  • Uso de JasperReport

¿Qué espero de ti?

  • Primero que te guste el proyecto y aprendas con él
  • Que realices criticas constructivas, yo no lo se todo y me equivo, pero de los errores se aprende 🙂
  • Si te sirvio el proyecto, recomiendalo 😉

EL PROYECTO

java swing mvc

reporte java

El proyecto elegido para la implementación del Patrón MVC-Java es el de «Programación de Asignaturas» de una Universidad Imaginaria con la impresión de su respectiva matriculación.

Al iniciar el sistema debes autentificarte dando tu CU (Carnet Universitario) y tu CI (Carnet de identidad), una vez logueado en el sistema debes programarte, si ya estas programado, el sistema no te deja programarte dos veces, solo puedes ver tu matriculación y realizar la impresión del mismo, caso contrario el sistema te presenta una lista de 8 asignaturas con sus respectivos grupos, los cuales puedes seleccionar y programar. Pero mejor ve el siguiente video asi te queda más claro todo.

Pues nada eso es todo, el proyecto esta tan comentado que te aburriras leyendome 🙂

DESCARGAR (Actualizado 7/09/2015)

Tags

Artículos similares

Gestión de Stock (Parte 2)

Continuando con el desarrollo de la aplicación (Parte 1), abrimos Netbeans y creamos un nuevo proyecto al que llamaremos[...]

JCheckBox dentro JTable con Netbeans

Para colocar un JCheckBox dentro una celda de un JTable debemos sobre escribir algunas clases para que el componente pue[...]

Uso de BorderPane

BorderPane es un layout que distribuye los nodos hijos en 5 posiciones TOP, LEFT, BOTTOM, RIGHT y CENTER Los nodos hijos[...]

JSpinner: Cambiar color de fondo y fuente

Un JSpinner es un componente swing de java con una caja de texto y un par de botones que nos permiten incrementar  y dec[...]

Como paginar registros en Java/Access

En este post veremos una forma de realizar la paginación en una base de datos Access utilizando el lenguaje de programac[...]

DeepFaceDrawing: Generación de imágenes faciales a partir de bocetos

Las recientes técnicas de traducción profunda de imagen a imagen permiten la generación rápida de imágenes faciales a pa[...]