You are on page 1of 10

Curso de Java Avanzado

EJERCICIO GUIADO. JAVA AVANZADO: POO. HERENCIA. DIALOGOS PROPIOS Reutilizacin de cdigo
La gran ventaja de la Herencia es la posibilidad de aprovechar Clases ya creadas (bien sea por nosotros mismos o por otros programadores) para crear nuevas Clases. De esta forma, no tenemos que crear la nueva Clase desde el principio, y solo tenemos que aadir algunos cambios a la Clase original, sin que esta se vea afectada. De esta manera, podemos tomar Clases de las libreras de Java y crear a partir de ellas nuevas Clases para nuestras necesidades especficas. Estas clases luego pueden ser incluidas fcilmente en futuros proyectos.

Cuadro de Dilogo Propio Como ejemplo de todo esto, crearemos un cuadro de dilogo propio que puede ser usado muy a menudo en nuestros proyectos. Concretamente, ser un cuadro de dilogo que nos permita introducir una fecha (dia / mes / ao) Debes tener en cuenta que los cuadros de dilogo son objetos de la clase JDialog, por lo que este cuadro de dilogo propio tendr que derivar (heredar) de la clase JDialog. La clase JDialog se comporta como una ventana (un JFrame) as que su programacin es relativamente sencilla. Veremos el caso concreto de programar un Cuadro de Dilogo Propio a travs del ejercicio guiado que viene a continuacin.

http://procesinc.com/

Curso de Java Avanzado


EJERCICIO GUIADO

1. Crea un proyecto llamado Fecha, que tenga un paquete principal llamado paqueteprincipal y un JFrame llamado ventanaprincipal:

2. Para crear un cuadro de dilogo propio, debes hacer clic con el botn derecho del ratn sobre el paquete principal y activar la opcin Nuevo Archivo/Carpeta. A travs de esta opcin accedemos a un men desde donde podemos aadir a nuestro proyecto distintos tipos de clases.

3. En la ventana que aparece, escogeremos en la parte izquierda la opcin Formularios GUI Java, y en la parte derecha escogeremos la opcin Formulario JDialog. Luego activa el botn Siguiente.

http://procesinc.com/

Curso de Java Avanzado

4. A continuacin tendremos que indicar el nombre que tendr la clase correspondiente a nuestro cuadro de dilogo propio. En nuestro caso llamaremos a esta clase dialogoFecha.

http://procesinc.com/

Curso de Java Avanzado


5. Y pulsa el botn Terminar. Observars que se ha creado una nueva Clase dentro del proyecto llamada dialogoFecha.

6. Es interesante que veas el cdigo de esta clase. Haz doble clic sobre ella:

Si observas el cdigo vers que es muy similar al de las Clases JFrame, es decir, a la de la clase de la ventana principal. Debes observar que la clase dialogoFecha que vas a crear es heredada de JDialog, y tambin vers que hay un constructor similar al de los JFrame, aunque con parmetros: Hereda de JDialog

Constructor

7. Adems, tenemos la ventaja de poder usar la ventana de diseo para crear nuestro cuadro de dilogo dialogoFecha:

8. Usaremos la ventana de diseo para darle forma a nuestro cuadro de dilogo. Recuerda que la finalidad de este cuadro de dilogo ser la de permitirle al usuario introducir una fecha. Disalo para que quede as:

http://procesinc.com/

Curso de Java Avanzado

9. Asigna nombre a cada elemento: El cuadro de texto para el da se llamar: txtDia El cuadro de texto para el mes se llamar: txtMes El cuadro de texto para el ao se llamar: txtAnio El botn Aceptar se llamar btnAceptar El botn Cancelar se llamar btnCancelar

10. Como ves, hasta ahora la creacin de un cuadro de dilogo propio es algo muy sencillo, ya que es muy similar a la creacin de una ventana. En este proceso (al igual que en la creacin de una ventana) participa el concepto de herencia. 11. Ahora hay que dotar a nuestro cuadro de dilogo de las propiedades y los mtodos necesarios para que sea fcil de usar. Antes de programar todo esto, aqu tienes una descripcin de lo que queremos aadir al cuadro de dilogo:

Propiedades: Dia - entero Mes - entero Anio - entero BotonPulsado - entero Mtodos: getFecha() Este mtodo devolver una cadena (String) con la fecha en este formato: dia/mes/ao

getFechaLarga() Este mtodo devolver una cadena con la fecha en el siguiente formato: Dia de Mes(en letras) de Ao

getBotonPulsado() Este mtodo devolver el valor de la propiedad BotonPulsado. Esta propiedad podr tener un 0 o un 1. Tendr un 0 si se pulsa el botn Aceptar, y un 1 si se pulsa el botn Cancelar.

12. Bien, empecemos. Programar las propiedades es algo sencillo, ya que son simplemente variables globales a la clase dialogoFecha:

http://procesinc.com/

Curso de Java Avanzado

Propiedades de la clase dialogoFecha

13. Cuando el usuario pulse el botn Cancelar, el cuadro de dilogo de fecha debe introducir el valor 1 dentro de su propiedad BotonPulsado, y el cuadro de dilogo se cerrar. Para programar esto, acude a la ventana de diseo y entra en el actionPerformed del botn btnCancelar.

Como puedes observar en el cdigo, asigno el 1 a la propiedad BotonPulsado y luego uso el mtodo dispose para cerrar el cuadro de dilogo.

14. Cuando el usuario pulse el botn Aceptar, el cuadro de dilogo de fecha debe introducir el valor de los JTextField txtDia, txtMes y txtAnio en sus respectivas propiedades: Dia, Mes y Anio. Luego, se debe introducir un 0 en la propiedad BotonPulsado, y finalmente se cerrar el cuadro de dilogo. Accede al actionPerformed del botn btnAceptar y programa lo siguiente

15. Ya hemos programado las acciones a realizar cuando se pulse el botn Aceptar y Cancelar. Ahora programaremos el resto de los mtodos. Empezaremos por el mtodo getFecha. El mtodo getFecha devolver una cadena con la fecha en formato dia/mes/ao. Por tanto, este mtodo tendr la siguiente forma. Debes escribir este cdigo dentro de la clase dialogoFecha. El mejor sitio puede ser debajo del constructor.

http://procesinc.com/

Curso de Java Avanzado

Observa el cdigo. Se unen las propiedades dia, mes y ao en una cadena, separadas por el smbolo /. Luego se devuelve la cadena.

16. Ahora programaremos el mtodo getFechaCompleta. Este mtodo devuelve la fecha con formato largo, usando el mes en letras. El mtodo getFechaCompleta tendr el siguiente aspecto. Puedes programarlo a continuacin del mtodo del punto anterior:

Como puedes observar, se concatena el da en una cadena y luego, dependiendo del valor de la propiedad Mes, se concatena un mes en letras. Finalmente se concatena la propiedad Anio y se devuelve la cadena.

17. Y ya para terminar con la programacin de nuestro dialogoFecha, programaremos el mtodo getBotonPulsado, que bsicamente devuelve la propiedad BotonPulsado, la cual contiene un

http://procesinc.com/

Curso de Java Avanzado


0 si se puls Aceptar y un 1 si se puls Cancelar. La programacin de este mtodo es muy sencilla:

La clase dialogoFecha est terminada. Gracias a ella podremos crear cuadros de dilogo en nuestros proyectos para introducir fechas. Para probar esta clase, usaremos nuestra ventana principal.

18. Acude a la ventana principal, haciendo doble clic sobre ella en la ventana de proyectos:

19. Disea esta ventana para que tenga la siguiente forma:

El botn se llamar btnFechaNacimiento y la etiqueta con borde se llamar etiFechaNacimiento.

20. El programa funcionar de la siguiente forma: Al pulsar el botn Introducir Fecha Nacimiento aparecer un cuadro de dilogo del tipo dialogoFecha, donde el usuario introducir la fecha de nacimiento. Al pulsar Aceptar, dicha fecha aparecer en la etiqueta etiFechaNacimiento. Al pulsar Cancelar, la etiqueta etiFechaNacimiento se borrar.

http://procesinc.com/

Curso de Java Avanzado


21. Nuestro programa necesitar un cuadro de dilogo del tipo dialogoFecha. Este cuadro lo declararemos en la zona de variables globales de la ventana principal y lo llamaremos nacimiento

22. El objeto nacimiento es del tipo dialogoFecha. Recuerda que los objetos que declaras de forma global, luego debes construirlos en el constructor. As pues construiremos el objeto nacimiento. Para construir un objeto que sea un cuadro de dilogo hay que aadir dos parmetros: null, y luego indicar true o false, segn quieras que el cuadro de dialogo sea modal o no. En nuestro caso, queremos que el cuadro de dilogo nacimiento sea modal, por lo que indicaremos true:

Se construye el cuadro de dilogo nacimiento. Ser modal (true)

23. Programa el actionPerformed del botn btnFechaNacimiento. Este botn mostrar al cuadro de dilogo nacimiento, donde el usuario introducir una fecha. Luego, comprobaremos si el usuario puls Aceptar o Cancelar. En el caso de que pulsara Aceptar, el programa introducir en la etiqueta etiFechaNacimiento la fecha escrita por el usuario. Todo esto se hace preguntando al objeto nacimiento a travs de los mtodos programados. Observa el cdigo:

24. Ejecuta el programa y observa el funcionamiento del botn btnFechaNacimiento y del cuadro de dilogo nacimiento

http://procesinc.com/

Curso de Java Avanzado

1) Al pulsar el botn aparece el cuadro de dilogo diseado por nosotros

3) El programa le pide informacin al cuadro de dilogo para saber que debe colocar en la etiqueta.

2) Al pulsar Aceptar o Cancelar, el cuadro de dilogo modifica sus propiedades internas (dia, mes, ao y botn pulsado) y se cierra

EJERCICIO

Aade otra etiqueta a la ventana principal. Modifica el cdigo del botn btnFechaNacimiento de forma que tambin aparezca en esta etiqueta la fecha elegida por el usuario en formato largo. Esto debe suceder solo si el usuario Acepta el cuadro de dilogo. En caso de que el usuario cancele el cuadro de dilogo esta etiqueta se borrar.

CONCLUSIN Es posible crear cuadros de dilogos propios, con las caractersticas que ms nos interesen. Estos cuadros de dilogo son clases que derivan de la clase JDialog. Los cuadros de dilogo se comportan y manejan bsicamente igual que las ventanas. La gran ventaja de crear cuadros de dilogos propios, es que luego se podrn usar en otros proyectos.

http://procesinc.com/

You might also like