Está en la página 1de 8

Patrn MVC en Java con Netbeans

El patrn MVC (Modelo, Vista, Controlador), es un patrn de arquitectura de software


que separa los datos de una aplicacin, la interfaz que ve el usuario de la lgica del
negocio en tres componentes distintos. Es ms frecuente en aplicaciones Web que en
aplicaciones de escritorio, sin embargo es aplicable tambien a este, sin ningun
problema, Java ya contaba hace rato con Observer y Observable, herramientas que nos
ayudan a la interaccin entre la interfaz y el modelo, sin embargo, el ejemplo que
dejamos a continuacin no hace uso de estas herramientas.

La descripcin del patrn MVC es:


Vista (View): Representa la interfaz de usuario y todas las herramientas con las cuales
el usuario hace uso del programa.
Modelo (Model): Es donde est toda la lgica del negocio, la representacin de todo el
sistema incluido la interaccin con una base de datos, si es que el programa asi lo
requiere.
Controlador (Controller): Este componente es el que responde a la interaccin
(eventos) que hace el usuario en la interfaz y realiza las peticiones al modelo para
pasar estos a la vista.
An no est del todo claro, pero con el siguiente ejemplo, lo comprenderemos mejor.

El programa que realizaremos, es una aplicacin trivial y sencilla, sin embargo nos
ayudara a comprender mejor cual la forma de trabajo de este matrn MVC en Java,
utilizaremos para esto, el IDE de Netbeans.

PROYECTO
1. Crea un nuevo proyecto en netbeans, para este ejemplo, el proyecto se llama
"jc_mvc_demo". Crea una estructura de paquetes (Controller, Model, View), hacemos
esto para separar cada componente, ser ms organizados. Debes tener algo como
esto.

Como puedes observar, mantenemos el paquete default junto al Main.java que nos
crea netbeans, este main es el que nos servira como nuestro index.php de nuestra
aplicacin, nuestro "lanzador".
2. Empecemos creando la lgica de la aplicacin, crea una nueva clase en el paquete
Model, llamalo "modelo.java" y aade el siguiente codigo:

01 package model;
02 /**
05 * En esta clase se guarda la lgica del sistema, para este sencillo ejemplo
06 * consiste en una SUMA
07 */
08 public class modelo {
09

//Variables

10

private int valor1=28;

11

private int valor2=69;

12

private int total = sumar();

13
14

public modelo(){}

15
16

public void set_valor1(int val){

17
18

this.valor1=val;
}

19
20

public int get_valor1(){

21

return this.valor1;

22

23
24

public void set_valor2(int val){

25
26

this.valor2=val;
}

27
28

public int get_valor2(){

29

return this.valor2;

30

31
32

public int sumar(){

33

this.total = this.valor1 + this.valor2;

34

return this.total;

35

36
37

public int get_total(){

38

return this.total;

39
40

41 }

Como vemos, nuestra modelo es sencillo, es nada ms que la suma de dos valores
enteros, con sus respectivos metodos. continuemos.
3. Diseemos ahora la interfaz de usuario, nuestra VISTA.
Aade un JFrame al paquete VIEW, llmalo "vista.java", OJO los recuadros marcados
con rojo, son los componentes que tendrn interaccin con el modelo, as que para
evitar confusiones, es mejor renombrarlos, coloca los nombres tal como se ven en la

imagen de abajo.

Netbeans, al aadir objetos a nuestro JFrame, automaticamente los coloca como


PRIVATE, debemos cambiar esto, para ello selecciona el objeto "vtxt1" y ve asus
propiedades, en la pestala CODIGO, elige el campo MODIFICADORES DE VARIABLE, en
la ventana que sale, cambia el atributo PRIVATE, por PUBLIC y dale a aceptar. Repite
esta accin para todos los objetos que estan marcados con rojo en la imagen anterior.

3. Ahora continuamos con el CONTROLADOR de nuestra aplicacin, crea una clase


"controlador.java" en el paquete CONTROLLER, el codigo que debes colocar, es:

01 package controller;
02
03 import java.awt.event.ActionEvent;
04 import java.awt.event.ActionListener;
05 import model.modelo;
06 import view.vista;
07 /**
10 */
11 public class controlador implements ActionListener{
12
13

private vista vista;

14

private modelo modelo;

15
16

//En el constructor inicializamos nuestros objetos y tambien

17

//aadimos el ActionListener al boton "cmdsumar" de la VISTA

18

public controlador( vista vista , modelo modelo){

19

this.vista = vista;

20

this.modelo = modelo;

21

this.vista.cmdsumar.addActionListener(this);

22

23
24

//Inicia los valores del jFrame VISTA con los datos del MODELO

25

public void iniciar_vista(){

26

vista.setTitle( "Demo MVC * jc-mouse.net" );

27

vista.setLocationRelativeTo(null);

28

vista.vtxt1.setText( String.valueOf(modelo.get_valor1()) );

29

vista.vtxt2.setText( String.valueOf(modelo.get_valor2()) );

30

vista.vtxt3.setText( String.valueOf(modelo.get_total()) );

31

32
33

//La accion del boton de la VISTA es capturado, asi como los valores de

34

//los jtextbox, entonces se realiza la funcion SUMAR y se actualiza

35

//el jtextbox correspondiente al resultado

36

public void actionPerformed(ActionEvent e) {

37

modelo.set_valor1( Integer.valueOf( vista.vtxt1.getText() ) );

38

modelo.set_valor2( Integer.valueOf( vista.vtxt2.getText() ) );

39

modelo.sumar();

40

vista.vtxt3.setText( String.valueOf(modelo.get_total()) );

41
42
43 }

Explicacin: nuestra clase controlador, implementa el ActionListener, esto para


responder desde esta clase, los eventos realizados desde la interfaz (VISTA), ademas
en el constructor de la clase, vemos que se pasan como parametros, la clase VISTA y la
clase MODELO,nuestra clase ademas cuenta las funciones, INICIAR() la cual inicializa
los valores de la interfaz, como ser el atributo titulo del JFrame, posicionamiento en
pantalla, valores iniciales de los jtextbox, etc. tambien tenemos el mtodo actin
performed el cual capura el evento realizado desde la interfaz, en nuestro ejemplo es
solo un CLICK EN EL BOTON DE MENU CMDSUMAR, obtiene los datos
correspondientes e invoca al modelo para procesar la informacin y obtener una
respuesta. Pues bueno, eso es todo, fijese como la interfaz para llegar al modelo, pasa
por el controlador y visceversa, cuando el modelo necesita mostrar un dato, pasa por
el controlador hasta llegar a la vista, esto claro no es una regla, puedes buscar en
google y encontraras varias variaciones de este modelo.

4. Para terminar debemos implementar todo esto en nuestro main.java:

01 package jc_mvc_demo;
02
03 import controller.controlador;
04 import model.modelo;
05 import view.vista;
06 /**
09 */
10 public class Main {
11
12

public static void main(String[] args) {

13
14

//nuevas instancias de clase

15

modelo modelo = new modelo();

16

vista vista = new vista();

17

controlador controlador = new controlador( vista , modelo );

18

//se inicia la vista

19

controlador.iniciar_vista();

20
21

vista.setVisible(true);

22
23

24
25 }

Ejecuta el programa para terminar.

El patrn MVC, nos permite cambiar la interfaz de usuario (VISTA), sin tocar en lo
absoluto el MODELO de la aplicacin, y realizar pequeos cambios en el controlador,
minimos cambios, como podemos observar en la imagen superior, tenemos la interfaz
1, la cual creamos en este tutorial, y ademas una segunda interfaz, totalmente distina,
sin embargo funciona bajo el mismo MODELO.

También podría gustarte