Sie sind auf Seite 1von 9

Actividad de Modelo Vista Controlador, Realizar en Java el ejemplo de calculadora

de conversin , escribir los resultados obtenidos.

MVC es Modelo, Vista y Controlador.


Este patrn de diseo nos dice que debemos separar nuestro programa en tres
partes. Las cuales son las anteriores y nos indican lo siguiente.
Modelo: Es la parte lgica del programa, el que resuelve el problema, el que da el
resultado. Aqu van los algoritmos y la parte lgica, la crucial.
Controlador: Es la seccin que se comunica con el modelo y la vista, obtiene los
datos ingresados por el usuario a travs de la vista y lo manda al modelo para que
este realice las operaciones correspondientes.
Vista: Esta parte es la que interacta con el usuario y enva los datos al controlador
para que se realice la comunicacin con el modelo.
Podramos decir que el modelo es la parte donde mas vamos a tardar pues es
donde debemos resolver el problema. El controlador va muy ligado a la vista y
estas dos partes son lo mas fcil de realizar, relativamente.

Actividad
Ahora que ya sabemos que debe hacer cada parte pongamos un ejemplo de algn
programa que nos hayan pedido.
Digamos que nos encargan realizar un programa que convierta una cantidad a
pesos(MXN) y a Dlares(USD)
Realizamos un anlisis del problema y ya sabemos como obtener el resultado.
Sabemos que un dlar vale 13,943 pesos y que un peso vale 0.072 dlares.
Entonces las operaciones para realizar la conversin serian:
?

moneda * cantidad

Entonces ya tenemos como resolver el problema principal, ahora podemos


empezar a escribir cdigo.
Lo primero es el modelo. Crearemos un paquete que se llame mvc. En el que irn
tres clases.
Modelo.java, Vista.java y Controlador.java

Coloquemos el codigo de el Modelo:


?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

package mvc;

public class Modelo {

private Double moneda;
private Double cantidad;
private Double resultado;

public void setMoneda(Double moneda) {
this.moneda = moneda;
}
public void setCantidad(Double cantidad) {
this.cantidad = cantidad;
}
public Double getResultado() {
return resultado;
}
public void convetirDolarAPeso() {
resultado = cantidad * moneda;
}
public void convertirPesoADolar() {
resultado = cantidad * moneda;
}
}

La clase Modelo establece tres variables de clase o globales(atributos) y cinco


mtodos. Las variables son accedidas y modificadas por los mtodos. Usamos los
mtodos set y get para modificar el valor de las variables cantidad y moneda. Y
usamos los mtodos que se encargan de realizar la conversin para obtener el
resultado.






Ahora veamos el cdigo de la Vista:


?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

package mvc;

import java.awt.BorderLayout;
import java.awt.FlowLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Vista extends JFrame{
public JButton pesos, dolares;
private JPanel panelB, panelR;
public JLabel lResultado;
public JTextField campoTexto;

public Vista() {
getContentPane().setLayout(new BorderLayout());

panelB = new JPanel();
panelB.setLayout(new FlowLayout());

panelR = new JPanel();
panelR.setLayout(new FlowLayout());

pesos = new JButton("Convertir a Pesos");
dolares = new JButton("Convertir a Dolares");

lResultado = new JLabel("Resultado:");
campoTexto = new JTextField(20);

panelB.add(pesos);
panelB.add(dolares);

36
37
38
39
40
41
42

panelR.add(lResultado);

add(campoTexto, BorderLayout.NORTH);
add(panelB, BorderLayout.SOUTH);
add(panelR, BorderLayout.CENTER);
}
}

La clase vista se encarga de crear los componentes Swing que harn la GUI y no
explico mas de UI porque eso es tema aparte =P
Basta con saber que hereda el componente JFrame, que contiene dos paneles, dos
botones, un label y un textfield.



La clase Controlador:
?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

package mvc;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;

public class Controlador implements ActionListener {
private Modelo modelo;
private Vista vista;
private Double cantidad;

public Controlador(Modelo modelo, Vista vista) {
this.modelo = modelo;
this.vista = vista;

this.vista.pesos.addActionListener(this);
this.vista.dolares.addActionListener(this);
}
public void iniciarVista() {

21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55

vista.setTitle("Conversor");
vista.pack();
vista.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
vista.setLocationRelativeTo(null);
vista.setVisible(true);
}
public void actionPerformed(ActionEvent evento) {
if(vista.pesos == evento.getSource()) {
if(!"".equals(vista.campoTexto.getText())) {
try{
cantidad = Double.parseDouble(vista.campoTexto.getText());
modelo.setCantidad(cantidad);
modelo.setMoneda(13.943);
modelo.convetirDolarAPeso();
vista.lResultado.setText(modelo.getResultado().toString());
}catch(NumberFormatException e) {
vista.lResultado.setText("Introduzca una cantidad valida...");
}
}
}
else if(vista.dolares == evento.getSource()) {
if(!"".equals(vista.campoTexto.getText())) {
try{
cantidad = Double.parseDouble(vista.campoTexto.getText());
modelo.setCantidad(cantidad);
modelo.setMoneda(0.072);
modelo.convertirPesoADolar();
vista.lResultado.setText(modelo.getResultado().toString());
}catch(NumberFormatException e) {
vista.lResultado.setText("Introduzca una cantidad valida...");
}
}
}
}
}

La clase Controlador se divide en tres partes importantes, la primera es la


declaracin de los atributos de clase y el constructor de la clase. Esta parte crea
atributos tipo Modelo y tipo Vista para poder controlar la aplicacin completamente.
Adems le agrega los escuchadores a los botones.
Por ultimo creamos una clase en cualquier paquete que queramos y esta ejecutara
nuestra aplicacin.
Por ejemplo:
?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

package ejecutarConversor;

import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

import mvc.Controlador;
import mvc.Modelo;
import mvc.Vista;

public class PruebaConversor {
public static void main(String arf[]) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassNa
me());
}
catch (UnsupportedLookAndFeelException e) {
}
catch (ClassNotFoundException e) {
}
catch (InstantiationException e) {
}
catch (IllegalAccessException e) {
}
Modelo modelo = new Modelo();
Vista vista = new Vista();
Controlador controlador = new Controlador(modelo, vista);
controlador.iniciarVista();
}
}

Esta clase crea tres objetos que son, del tipo Modelo, del tipo Vista y del tipo
Controlador. A este ultimo le pasamos como parmetro los otros dos. Por ultimo,
por medio del objeto controlador mandamos mostrar la ventana. El bloque try-catch
es solo para la skin o look and feel de la aplicacin.

Das könnte Ihnen auch gefallen