Administra tu Blog

¡Crea tu Blog Ya! Fácil y Gratis

Aplicacion Java J2SE utilizando MVC

dagraug — 28-08-2008 GTM 1 @ 06:13 Tags:

Pues si, otra vez yo y mis trabajos raros de la u, esta vez me dejaron hacer una aplicacion de escritorio utilizando el patron de diseño MVC implementando observer y observable.

Buscando y buscando por internet no encontre nada bueno (busque casi 3 dias:s ) :( , todo lo que encontre era para J2EE......> pero bueno con la poca informacion pude hacer algo bueno(para lo mi lo era)aunque para el profe sea una "cosita".

MVC podría definirse como : Patrón arquitectónico desarrollado para interfaces gráficas que resalta la importancia de una separación clara entre la presentación de datos y la lógica de negocio de una aplicación.
Observer: Es cualquier objeto que desee ser notificado cuando el estado de otro objeto sea alterado
Observable: Es cualquier objeto cuyo estado puede representar interés y sobre el cual otro objeto ha demostrado ese interés .
funciones que intervienen en el control de Observador y Observable:

Observer

public void update( Observableobs,Object obj ):Llamada cuando se produce un cambio en el estado del objeto Observable
Observable

public void addObserver( Observer obs ): Añade un observador a la lista interna de observadores.

public void deleteObserver( Observer obs ): Borra un observador de la lista interna de observadores
public void deleteObservers(): Borra todos los observadores de la lista interna.
public int countObserver(): Devuelve el número de observadores en la lista interna
protected void setChanged(): Levanta el flag interno que indica que el Observable ha cambiado de estado
protected void clearChanged(): Baja el flag interno que indica que el Observable ha cambiado de estado
protected boolean hasChanged(): Devuelve un valor booleano indicando si el Observable ha cambiado de estado.
public void notifyObservers(): Comprueba el flag interno para ver si el Observable ha cambiado de estado y lo notifica a todos los observadores
public void notifyObservers( Object obj ):Comprueba el flag interno para ver si el Observable ha cambiado de estado y lo notifica a todos los observadores. Les pasa el objeto especificado en la llamada para que lo usen los observadores en su método notify().

Ahora si, despues de las definiciones vamos con el ejemplo--------------> regado por el internet está la famosa "barra" que cambia valores o tambien el graficador de grados(celsius y farenheit), pues yo hice algo un poco diferente, pero como dije antes a mi me gusto, al profe nose, pero yo quede contenta con lo que aprendi. Lo que hice fue un convertidor de dolares a soles, algo muy sencillo (cuando ya entendiste mvc y tienes conociemientos de javaen este caso).

Trabajo con 5 archivos java:

ModeloSoles
MonedaGUI
DolaresGUI
SolesGUI
MVCConvertidorSoles

Les dejo3 archivos, si les interesan los otros 2, postean y se los envio!
Suerte!

Fichero ModeloSoles

public class ModeloSoles extends java.util.Observable
{ public double getD(){return monedaD;}

public double getS(){return (monedaD* 2.92) ;}

public void setD(double monD)
{ monedaD= monD;
setChanged();
notifyObservers();
}

public void setS(double monS)
{ monedaD= monS*2.92;
setChanged();
notifyObservers();
}

private double monedaD= 1;
}

Fichero MonedaGUI

import java.awt.event.ActionListener;
import java.util.*;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.ActionEvent;

abstract class MonedaGUI implements java.util.Observer{

MonedaGUI(String label, ModeloSoles model, int h, int v){

                 this.label = label;
                 this.model = model;
                 monedaFrame = new Frame(label);
                 monedaFrame.add("North", new Label(label));
                 monedaFrame.add("Center", display);
            Panel buttons = new Panel();
                 buttons.add(upButton);
                 buttons.add(downButton);
                 monedaFrame.add("South", buttons);   monedaFrame.addWindowListener(new CloseListener());
                model.addObserver(this); // Conectar la vista al modelo
                monedaFrame.setSize(200,200);
                monedaFrame.setLocation(h, v);
                monedaFrame.setVisible(true);
}

public void setDisplay(String s){ display.setText(s);}

public double getDisplay(){

        double result = 0.0;
           try{

                 result = Double.valueOf(display.getText()).doubleValue();
            }catch (NumberFormatException e){}
                 return result;
            }

public void addDisplayListener(ActionListener a){

display.addActionListener(a);

}
public void addUpListener(ActionListener a){

 upButton.addActionListener(a);

}
public void addDownListener(ActionListener a){

downButton.addActionListener(a);

}

protected ModeloSoles model(){return model;}

private String label;
private ModeloSoles model;
private Frame monedaFrame;
private TextField display = new TextField();
private Button upButton = new Button("Aumentar");
private Button downButton = new Button("Disminuir");

public static class CloseListener extends WindowAdapter{

        public void windowClosing(WindowEvent e){

                e.getWindow().setVisible(false);
               System.exit(0);
               }
        }
}

Fichero MVCConvertidorSoles

import java.awt.event.ActionListener;
import java.awt.event.ActionListener;
import java.util.*;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.ActionEvent;

  public class MVCConvertidorSoles{
             public static void main(String args[]){
                       ModeloSoles soles = new ModeloSoles();
                       new DolaresGUI(soles, 200, 500);
                       new SolesGUI(soles, 200, 350);
              }
}

Disculpen por el desorden en el codigo, no es que mi codigo original este  asi, sino que el editor me lo movio un poco :S...

Pues resulta que me dejaron como tarea en la Universidad averiguar sobre un servidor de aplicaciones que soporte Servlets, JSP y todo ese rollo; anduve leyendo mucho y encontré el Jonás,Enhydra, SyBaseEAServer,Gerónimo y el JBoss(más recomendado).

Me decidí a preparar el JBoss, investigué muchas horas, hasta que logré tener la configuración necesaria.
Aquí dejo los pasos para los interesados.

Descargar jboss-4.2.2.GA  (www.jboss.org)

2.- Crear un directorio en la Unidad C:\ llamado Apps; dentro de esta carpeta crear un nuevo directorio llamado JBoss;dentro de éste descomprimir el archivo jboss-4.2.2.GA.
Configuración de Variables de entorno: Crear 3 variables de entorno nuevas: JBossHome, JAVA_HOME Y CLASSPATH(Mi Pc click derecho>Propiedades>Opciones Avanzadas>Variables de Entorno

Crear Variable :  JBossHome

Ruta :   C:\Apps\JBoss\jboss-4.2.2.GA

Crear variable JAVA_HOME

Ruta: C:\Archivos de programa\Java\jdk1.6.0

Crear Variable : CLASSPATH

Ruta: C:\Archivos de programa\Java\jdk1.6.0\lib\tools.jar

4.- Configurar Variable de entorno Path

   Ruta: C:\Archivos de programa\Java\jdk1.6.0

5.- Abir una consola de Símbolo del Sistema y escribir cmd y luego darle  Enter.
6.-Nos parecerá una pantalla negra y ahora escribimos

dagraug

cd  C:\Apps\JBoss\jboss-4.2.2.GA
enter

cd bin

enter

run

enter

Al escribir run iniciamos nuestro servidor, le damos unos segundos o minutos para que cargue(en mi caso fueron 4 minutos,pero al instalarlo en la universidad sólo 14 segundos :s

7.- Aparece un aventanita de Alerta de seguridad de Windows, le damos click en desbloquear.

8.- Una vez iniciado el servidor, procedemos a cargar un navegador y escribimos: http://localhost:8080/

jboss1.JPG

Y ya está! tenemos nuestro JBoss activo :p...... no deben cerrar la consola(pantallita negra) porque sino nuestro servidor se apagará!!!!!!

Que malo está el SP3 de Windows

dagraug — 18-05-2008 GTM 1 @ 23:50

Estuve  averiguando por ahi con unos amigos sobre la  actualizacion de windows al SP3 y realmente es malísima la impresión que se llevaron muchos, todos pensamos que sería lo máximo y todo pero no, resulta que antes de instalarlo tienes que hacerte una copia de seguridad(obvio que esto te toma mucho tiempo) porque está  aún a "modo prueba",resulta que el firefox corre lentísimo............. todo es cuestión de esperar , aunque opinion personal "¿Piensan pasarse toda la vida con sus mismas computadoras :S ?¿No se dan cuenta que el hardware se está fabricando muy rápido y que sus costos son bajos?¿que dicen vamos , nos toca comprarnos  computadoras nuevas con 2 o 4 GB de Ram así no tendran los problemas de la lentitud de carga entre otras cosas........?"

 Muchas son las personas que dicen que MIcrosoft esto, que Microsoft aquello, pero y ¿qué?, ellos se la pasan tratando de ofrecerle mejoras a los usuarios y todos que hacen, los critican.......

 Vamos a ser realistas antes de escribir comentarios que confundan a la gente.

Los usuarios de Linux como los de Mac y otras plataformas minoritarias llevan más de 15 años diciendo lo mismo, que si Windows tiene los dias contados, que cada vez hay más usuarios de linux, de Mac ....

Estamos en el 2008 y el 90% del mercado lo sigue teniendo Microsoft, y todo apunta a que todo seguirá igual, ¿Por qué?, fácil, porque la competencia lleva 25 años con la misma política, a excepción de Mac que con el cambio a intel ve incrementado un poco sus ventas. Pero no nos engañemos, conozco multitud de gente que compra un Mac porque es más bonito, y luego le instala Windows, ya que con el Mac no pueden usar el software mayoritario.

En cuanto a linux, mientras no hagan un software que la gente de a pie pueda usar sin problemas, seguirá siendo un SO únicamente para empresas y grupos minoritarios de usuarios.

Hay algo fundamental en la informática y en todo entorno empresarial, si la gente te esta demandando un producto fácil de usar, y tu le sigues dando linux, seguiras siendo un minoritario, ya que solo lo usarán aquellos que por trabajo estan obligados a trabajar con linux, o aquellos que por afición les gusta dicho sistema operativo.

Quien quiera discutir sobre el tema, antes de escribir que repase la historia de los últimos 25 años, no son invenciones, es la realidad actual y pasada, y seguramente la futura, al menos el futuro cercano.

windows_xp_sp3.jpg

El nuevo  sistema aumenta en un 10% el rendimiento que tiene la misma configuración con Widnows XP SP2.

 

Fue muy reconfortante para los fieles usuarios de Windows XP enterarse de este acontecimiento, sin embargo los que apostaron por Vista de momento no conseguirán un aumento de rendimiento sustancial con el nuevo SP1, las pruebas confirman lo que se esperaba que tan sólo puede hablarse de una ligerísima mejora de rendimiento con lo que el sistema se comportará de la misma forma.

Otro aspecto a considerar son las novedades que llevan ambos parches, que en el caso de Windows XP SP3 son bastante importantes sobre todo a nivel de seguridad y estabilidad.

En esta ocasión Windows XP SP3 contará con algunas características portadas de Windows Vista:

▪ Nueva Activación del Producto: No hay necesidad de introducir ningún nuevo número de serie durante la instalación del producto como ya ocurría en Windows Vista.

▪ Network Access Protection (NAP): Es una potente herramienta construida que nos ayuda a proteger la red contra malware y otras amenazas. Desarrollada especialmente para Windows Vista, Microsoft ha decidido aplicarlas también a Windows Server 2008 y ahora también a Windows XP SP3, debido al éxito que está mostrando tener esta herramienta de seguridad.
Ahora todos los equipos que se quieran conectar a nuestra red deben de cumplir una serie de requisitos en cuestiones de seguridad.

▪ Nuevo Kernel Cryptographic Module: Este nuevo modulo permite al kernel o núcleo del sistema, incluir un modulo entero para acceder a múltiples algoritmos criptográficos y tener disponibles para su uso en “modo kernel” controladores y servicios.

▪ Nueva Detección de “Black Hole Router” (“Routers agujero negro”): Windows XP SP3 pueda detectar y protegerse de ruteadores que descarten datos.

Windows XP SP3 es compatible con todas las versiones de Windows de la familia x86, includos la ediciones Professional, Media Center, y Home Editions.

Además de las importantes nuevas características, se han incluido 1.073 parches/hotfixes, no incluidos en los anteriores Service Pack. De estas 1.073 actualizaciones incluidas, 114 son correspondientes a fallos de seguridad. El resto son actualizaciones de código en algunas librerías del sistema para que este trabaje mejor, mejoras en los módulos mas importantes del sistema, bugfixes y actualizaciones en en la llamada Blue Screen of Death o BSoD (más conocida en español como pantalla azul de la muerte o «pantallazo azul»).

Valoro mucho que Microsoft piense en el usuario de Windows XP y también que apueste por un SP3 cargado de novedades y con mejoras de rendimiento importantes, porque podría haber sacado cuatro retoques y listo y en cambio parece ser que la renovación es general y a nivel de kernel también lo han mejorado, lo cual digo que es de agradecer.

Sin embargo me sorprende que después de todo lo que se ha hablado del pobre rendimiento de Windows Vista, en el SP1 no consigan más que arrancar algunas décimas al rendimiento cuando había un gran número de usuarios esperando cambios radicales en ese sentido.

Pues ahora el problema será y si me compro una laptop nueva¿Funcionará correctamente si le saco el vista y le instalo el Xp? Sinceramente creo que no, pues tengo el caso de una compañera de estudios, que hizo algo muy parecido y se quedó sin que funcione el wireless y el BlueTooh, así que les recomiendo, dejen en manos de Microsoft la mejora del Vista o si se van a comprar una laptop(Por desgracia todas estan saliendo con el vista )exijan que el S.O sea Windows XP(sí, exijan porque están pagando así que están en todo su derecho).

 

SP3 del XP Ya está disponible para descargarlo desde
Softonic o desde la página oficial de Microsoft.