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 04/01/2026)

Tags

Artículos similares

Microservicio REST Java con Spark – Parte 2

Segunda y ultima parte del post dedicado a la creación de un microservicio en lenguaje java utilizando el framework Spar[...]

Sistema de gestión de stock – El Controlador (Parte 5)

Para terminar el tutorial, debemos unir tanto la VISTA como el MODELO y para eso esta el CONTROLADOR. o.O El controlador[...]

Consultas con ADO.NET

ADO.NET proporciona un puente entre los objetos creados en VB o C#  y la base de datos MySQL asociada a la aplicación, a[...]

Material Design: BottomNavigationView

BottomNavigationView es una barra de navegación que se sitúa en la parte inferior de la pantalla en los dispositivos móv[...]

Juego de memoria para niños (Código Fuente)

En un post anterior, desarrollamos un swing para simular un efecto FLIP  y recibí algunos mensajes pidiéndome un ejemplo[...]

Extraer texto de imágenes

imgclip es una pequeña herramienta de línea de comandos el cual se ejecuta desde la terminal para Mac, Windows y Linux.[...]