You are on page 1of 20

Elementos de Programación OO

con el Lenguaje Java

Desarrollo elemental de una


aplicación con una GUI
funcional

Con base a los conceptos del curso de Sun Microsystems


“Lenguaje de Programación Java”
(Java Programming Language. SL275).

Luis Ernesto Rubio.

1
Desarrollo elemental de una aplicación con una GUI
funcional

En este ejemplo se explicarán de forma general los elementos de una


aplicación basada en una GUI completamente funcional, a partir de una
secuencia de programas. Dicha aplicación crea inicialmente dos objetos de la
clase Humano, que utiliza para combinar sus atributos y con ello, generar un
tercer objeto.

La aplicación presentará en pantalla una GUI, en donde se podrán desplegar


los datos de los atributos de cada uno de los tres objetos en memoria.

Al hacer tres veces clic sobre el botón “Oprímeme” aparecerán uno a uno los
siguientes mensajes:

Padre de Nombre: Bruce Wayne Ojos: negros Cabello: castaño

Madre de Nombre: Selina Kyle Ojos: azules Cabello: rubio

Hija de Nombre: Helena Wayne Ojos: negros Cabello: rubio

2
Programa 1: Los Objetos de la Lógica de la Aplicación
El código a partir del cual se obtendrán los objetos de la clase Humano es
como el siguiente:

Que crea los tres objetos empelando la clase:

3
Programa 2: Ensamblaje de la GUI
Para construir – dibujar una GUI, inicialmente se identificaran sus elementos,
componentes, contenedores y gestores de formato, a partir de referencias:

Contenedores:
 ventana.- referencia al objeto de la clase Frame etiquetado como
“Programa Génesis”
 tablero.- referencia al objeto de la clase Panel etiquetado como “Salir”
ubicado en la zona oeste de ventana

Componentes:
 controlPersonas.- referencia al objeto de la clase Button etiquetado
como “Oprímeme”
 controlSalida.- referencia al objeto de la clase Button etiquetado como
“Salir”
 escritorio.- referencia al objeto de la clase TexArea ubicado en la zona
oeste de ventana

Gestores de formato:
 formato.- referencia al objeto de la clase BorderLayout asociado a
ventana,

controlPersonas formato

ventana

escritorio

tablero controlSalida

4
Para crear los objetos y ubicarlos en su sitio se escribe código como:

Para ubicar los objetos, una vez que fueron creados, se usa el método add de
los contenedores de la siguiente forma:

5
Un programa para este efecto es el que sigue:
2
En el constructor
GUI(), Se generan los
dos botones y el área
de texto.

3
En el método
desplegar se generan
los contenedores y el
gestor de formato; se
ubican en su sitio los
componentes, se
configura y se presenta
la ventana:

1
El programa comienza en la función
main, creando al objeto aplicación x,
mediante el cual

2. se invoca al constructor de la clase


GUI

3. se invoca al método desplegar


6
Programa 3: Activar la GUI
La GUI resultante en el programa previo, es básicamente un dibujo en la
pantalla de la computadora, que ni siquiera se cierra, a menos que se
interrumpa la ejecución de la aplicación mediante la opción para detener
procesos del IDE en uso o bien a través el sistema operativo.

A través del modelo delegacional de eventos es posible dotar de funcionalidad


y dinamismo a las aplicaciones basadas en GUI.

En este modelo, un objeto fuente de eventos – event source, es activado por


el usuario y genera un objeto evento – event, el cual es auditado por el objeto
auditor – listener asociado a la fuente del eventos.

El auditor audita – procesa, al evento a través de un método gestor de


eventos – event handler, el cual lleva a cabo las tareas correspondientes a la
actividad de la aplicación.

Un gestor de eventos proviene de una Clase Auditora – Listener Class


programada especialmente, la cual:

 Implementa a una o varias Interfaces Auditoras – Listener Interfaces,


o bien:
 Hereda de una clase Adaptador – Adapter, la que a su vez implementa
a una o varias Interfaces Auditoras – Listener Interfaces

Por ejemplo, para obtener lo siguiente:

Se determina que en el programa:

 El objeto referido por controlPersonas sea una fuente de eventos que


responda al clic del ratón generando un evento –
objeto:ActionListener.
 El objeto escribiente sea un auditor.
 El método actionPerformed sea el gestor de eventos.

7
De modo que, cuando se hace clic sobre el botón referido por
controlPersonas (fuente de eventos), Java crea un evento, en este caso un
objeto:ActionListener, que es auditado por el objeto auditor, el escribiente,
que efectúa la escritura de un mensaje en el escritorio, por medio de de su
método gestor de eventos: actionPerformed, el que mediante la referencia e
“captura el evento”.

8
El código siguiente, hace posible la dinámica anteriormente descrita:

Se declara que la Clase


Auditora: Escritor
El método actionPerformed
implementará a la Interface
realiza la función de gestor de
Auditora: ActionListener
eventos al capturar – referir, a
objetos evento de la clase
ActionEvent

El método actionPerformed se
implementa indicando las
acciones correspondientes a la
dinámica de la aplicación, en
este caso, escribir un mensaje
en el escritorio.

Se crea el objeto auditor,


escribiente,

Se registra escribiente, como auditor


de eventos del botón controlPersonas

9
Para escribir las a las Clases Auditoras, se acude a la API Java para leer la
especificación de las Interfaces Auditoras, así como de sus correspondientes
clases Adaptador.

Las Interfaces Auditoras están listas para ser implementadas y no se tiene que
escribir su código, el que se vería así:

La especificación de ActionListener en la API, es la siguiente:

10
Para el caso de las acciones desencadenadas al hacer clic sobre el botón
controlSalida, se eligió minimizar el código haciendo uso de la noción de
clases anónimas, resultando el siguiente código:

Se registra, al auditor de eventos del


botón controlSalida

El método actionPerformed
realiza la función de gestor de
eventos al capturar – referir, a
objetos evento de la clase
ActionEvent

El método actionPerformed se
implementa indicando las
acciones correspondientes a la
dinámica de la aplicación, en
este caso, escribir un mensaje
en el escritorio.

Se crea un objeto auditor sin


nombre, a partir de una Clase
Anónima que implementa a la
Interface Auditora
ActionListener

11
Para activar el funcionamiento del botón X de ventana, se asociará igualmente
un objeto auditor, a fin de lograr el siguiente efecto:

El código que se habrá de escribirse será semejante a:


El método windowClosing
Se declara que la Clase Auditora:
realiza la función de gestor de
Portero hereda a la Clase
eventos al capturar – referir, a
Adaptador: WindowAdapter, para
objetos evento de la clase
sustituir al método windowClosing
WindowEvent

El método windowClosing se
implementa indicando las
acciones correspondientes a la
dinámica de la aplicación, en
este caso, escribir un mensaje
en el escritorio.

Se registra a un objeto de la Clase


Auditora: Portero, como auditor de
eventos del botón
12
El uso de la clase WindowAdapter como Clase Auditora, obedece a la
necesidad de utilizar el método gestor de eventos: windowClosing, cuya
especificación en la API Java, se lee a continuación:

Si se hubiera decidido seguir el método de implementar Interfaces Auditoras


como en:

Con:

Entonces, dado que windowClosing está declarado en la InterfaceAuditora


WindowListener:

Habría que escribir una Clase Auditora que implementaría a 7 métodos, dada
la regla de contrato de Java respecto al uso de Interfaces, que indica la
necesidad de implementar todos los métodos en la clase vinculada a una
interface.

13
Por ello, en la API Java, se proporciona un conjunto de clases Adaptador
(Adapter) que coinciden con las interfaces. Cada clase Adaptador implementa
una Interface Auditora y sustituye (override) todos los métodos declarados
por la Interface Auditora con métodos vacíos { }, con lo cual se satisface el
requerimiento de la implementación de todos los métodos.

De ese modo, se pueden crear Clases Auditoras (para crear objetos


auditores) extendiendo clases Adapador, en vez de implementar la una
Interface Auditora correspondiente. Esto proporciona libertad al programador
para redefinir solamente aquellos métodos de la Interface Auditora que
intervienen en la aplicación que desarrolla:

14
Así en la programación de este ejemplo, se acudió a la siguiente especificación
en la API Java:

15
Programa 4: Integración de la Solución
En este programa se integrarán los objetos de la lógica de la aplicación, a la
GUI con sus auditores, a fin de obtener una aplicación completamente
funcional, combinando la secuencia de programas 1 a 3.

Como se indicó al principio, la aplicación debe crear inicialmente dos objetos de


la clase Humano, que utiliza para combinar sus atributos y con ello, generar un
tercer objeto.

La aplicación presentará en pantalla una GUI, en donde se podrán desplegar


los datos de los atributos de cada uno de los tres objetos en memoria.

Al hacer tres veces clic sobre el botón “Oprímeme” aparecerán uno a uno los
siguientes mensajes:

Padre de Nombre: Bruce Wayne Ojos: negros Cabello: castaño

Madre de Nombre: Selina Kyle Ojos: azules Cabello: rubio

Hija de Nombre: Helena Wayne Ojos: negros Cabello: rubio

16
El código de la aplicación es:

17
18
19
Podemos extender las ideas de esta aplicación para crear nuestras propias
aplicaciones basadas en GUIs, así como aprovechar, comprender el
funcionamiento interno y optimizar los códigos de las herramientas de diseño
de visual que ofrecen los IDEs actuales. Y así instrumentar nuevas soluciones
a partir de la interacción de un sinnúmero de objetos:

20

You might also like