Vous êtes sur la page 1sur 8

JAVA: CENTRALIZAR CDIGO

(dirigido por Jara)

El problema de la repeticin de cdigo


Es muy habitual en Java que varios eventos tengan que ejecutar el mismo cdigo. En este
caso se plantea la necesidad de copiar y pegar ese cdigo en los distintos eventos a
programar:

Evento 1

Cdigo A

Evento 2

Cdigo A

Evento 3

Cdigo A

Esta es una mala forma de programacin, ya que se necesitara modificar el cdigo, sera
necesario realizar la modificacin en cada copia del cdigo. Es muy fcil que haya olvidos y
aparezcan errores en el programa que luego son muy difciles de localizar.
Lo mejor es que el cdigo que tenga que ser ejecutado desde distintos eventos aparezca
solo una vez, y sea llamado desde cada evento:

Evento 1
Evento 2

Cdigo A

Evento 3

Veamos algunos ejemplos en los que el cdigo se puede repetir y como evitar esta
repeticin.

Ejercicio guiado 1
1. Crea un nuevo proyecto en java que se llame ProyectoCalculos. Este proyecto tendr
un paquete llamado PaqueteCalculos. Y dentro de l crear un JFrame llamado
VentanaCalculos. El proyecto tendr el siguiente aspecto:

Prof.: Jara C. Miguel A.

systemjara.net@gmail.com

2. La VentanaCalculos debe estar diseada de la siguiente forma:

Esta ventana contiene los siguientes elementos:


-

Una barra de mens a la que puede llamar menuBarra.


La barra de mens contiene un JMenu con el texto Calcular y que se puede llamar
menuCalcular
El menuCalcular contendr tres JMenuItem, llamados respectivamente: menuSumar,
menuRestar, menuBorrar y con los textos Sumar, Restar y Borrar.
Una etiqueta con el texto Nmero 1. (no importa su nombre)
Una etiqueta con el texto Nmero 2. (no importa su nombre)
Un cuadro de texto con un 0 y con el nombre txtNumero1.
Un cuadro de texto con un 0 y con el nombre txtNumero2.
Una etiqueta con el nombre etiResultado.
Un botn Sumar con el nombre btnSumar.
Un botn Restar con el nombre btnRestar.
Un botn Borrar con el nombre btnBorrar.

3. Aqu puedes ver la ventana en ejecucin con el men Calcular desplegado:

Prof.: Jara C. Miguel A.

systemjara.net@gmail.com

4. El objetivo de programa es el siguiente:


a.
b.
c.
d.
e.
f.
g.

El usuario introducir dos nmeros en los cuadros de texto.


Si pulsa el botn Sumar, se calcular la suma.
Si pulsa el botn Restar, se calcular la resta.
Si pulsa el botn Borrar, se borrarn ambos cuadros de texto.
Si elige la opcin del men Calcular-Sumar entonces se calcular la suma.
Si elige la opcin del men Calcular-Restar entonces se calcular la resta.
Si elige la opcin del men Calcular-Borrar entonces se borrarn ambos
cuadros de texto.
h. Si se pulsa enter en alguno de los dos cuadros de texto se debera calcular la
suma.

5. Este es un ejemplo en el que al activarse uno de varios eventos distintos se tiene que
ejecutar el mismo cdigo. Observa el caso de la suma:
Pulsar Botn Sumar
Activar Calcular Sumar en el men

Calcular la suma y
mostrarla en la etiqueta
de resultado

Pulsar enter en el primer cuadro de texto

Pulsar enter en el segundo cuadro de texto

6. Para que el cdigo est centralizado, es decir, que aparezca solo una vez, ser
necesario construir en la clase un mtodo. Un mtodo en java es el equivalente de
una funcin o procedimiento en C. Veamos como hacerlo:

Prof.: Jara C. Miguel A.

systemjara.net@gmail.com

7. Accede al cdigo de tu programa a travs del botn Origen.

8. Un buen sitio para programar tus procedimientos puede ser debajo del constructor.
Puedes distinguir fcilmente al constructor porque tiene el mismo nombre que la
clase que ests programando, o dicho de otro modo, tiene el mismo nombre que la
ventana que ests programando: VentanaCalculos.

Este es el constructor
Este es un buen sitio para crear
tus propios procedimientos

9. Se va a programar un procedimiento que se encargue de recoger los valores de los


cuadros de texto. Calcular la suma de dichos valores, y luego mostrar la suma en
la etiqueta de resultados.
Los procedimientos en java tienen prcticamente la misma estructura que en C.
Programe lo siguiente:

Prof.: Jara C. Miguel A.

systemjara.net@gmail.com

Este es el procedimiento
que tienes que introducir en
el programa.

10. Si observas el cdigo, es el tpico procedimiento de C, cuya cabecera comienza con


void y el nombre que le hayas asignado (en nuestro caso Sumar)
void Sumar() {
....
}
Si estudias las lneas del cdigo, vers que lo que hace es recoger el contenido de
los dos cuadros de texto en dos variables de cadena llamadas cad1 y cad2.
Luego convierte dichas cadenas en nmeros que almacena en dos variables enteras
llamadas a y b.
Finalmente calcula la suma en una variable s y presenta el resultado en la etiqueta
etiResultado.
11. Hay que destacar que este cdigo no pertenece ahora mismo a ningn evento en
concreto, por lo que no tiene efecto ninguno sobre el programa. Ser necesario pues
asociar los eventos correspondientes con este procedimiento.
12. Interesa que al pulsar el botn Sumar se ejecute la suma, as pues entre en el
evento actionPerformed del botn Sumar y aada la siguiente lnea:
Sumar();

13. Como tambin interesa que al pulsar la opcin del men Calcular-Sumar se ejecute
la suma, entre en el evento actionPerformed de la opcin del men Sumar y aade
de nuevo la siguiente lnea:
Sumar();
Prof.: Jara C. Miguel A.

systemjara.net@gmail.com

14. Tambin se quiere que al pulsar la tecla enter en el cuadro de texto del nmero 1 se
ejecute la suma. Por lo tanto, en el evento actionPerformed del cuadro de texto
txtNumero1 hay que aadir la siguiente lnea:
Sumar();

15. Y como tambin se quiere que al pulsar la tecla enter en el cuadro de texto del
nmero 2 se ejecute la suma, tambin habr que introducir en su actionPerformed la
siguiente lnea:
Sumar();

16. Antes de continuar, ejecute el programa, introduzca dos nmeros, y compruebe como
se calcula la suma al pulsar el botn Sumar, o al activar la opcin del men Calcular
Sumar, o al pulsar Enter en el primer cuadro de texto, o al pulsar Enter en el segundo
cuadro de texto.
En cada uno de los eventos hay una llamada al procedimiento Sumar, que es el que
se encarga de realizar la suma.

actionPerformed btnSumar
Procedimiento
actionPerformed menuSumar
Sumar()
actionPerformed txtNumero1

actionPerformed txtNumero2

17. En el caso de la resta sucede igual. Tenemos que varios eventos distintos deben
provocar que se realice una misma operacin. En este caso tenemos lo siguiente:

Pulsar Botn Restar


Activar Calcular Restar en el men

Calcular la resta y
mostrar el resultado.

18. Para centralizar el cdigo, crearemos un mtodo Restar que se encargar de hacer la
resta de los nmeros introducidos en los cuadros de texto. Este mtodo se puede
colocar debajo del anterior mtodo Sumar:

Prof.: Jara C. Miguel A.

systemjara.net@gmail.com

Programa este
procedimiento.

19. El cdigo de este procedimiento es prcticamente idntico al del procedimiento


Sumar, as que no se comentar.
20. Ahora, es necesario que cuando se activen los eventos indicados antes, estos hagan
una llamada al procedimiento Restar para que se efecte la resta. As pues, entre en
el evento actionPerformed del botn Restar y aada esta lnea de cdigo:
Restar();
21. Igualmente, entre en el evento actionPerformed de la opcin del men Calcular
Restar y aada la misma llamada:
Restar();

22. Ejecute el programa y compruebe como funciona el clculo de la resta, da igual que
lo haga pulsando el botn Restar o la opcin del men Restar. Ambos eventos
llaman al mismo mtodo:

actionPerformed btnRestar
Procedimiento
actionPerformed menuRestar
Restar()

Prof.: Jara C. Miguel A.

systemjara.net@gmail.com

23. Finalmente se programar el borrado de los cuadros de texto a travs del botn
Borrar y de la opcin del men Borrar. En primer lugar, programa el siguiente
mtodo (puedes hacerlo debajo del mtodo Restar):

Programa el
procedimiento Borrar...

24. Ahora programa las llamadas al procedimiento borrar desde los distintos eventos. En
el evento actionPerformed del botn Borrar y en el evento actionPerformed de la
opcin del men Borrar programa la siguiente llamada:
Borrar();

25. Ejecuta el programa y prueba su funcionamiento.

CONCLUSIN
En java se pueden programar procedimientos al igual que en C. Normalmente, estos
procedimientos se programarn debajo del constructor, y tienen la misma estructura
que en C.
Se puede llamar a un mismo procedimiento desde distintos eventos, evitando as la
repeticin de cdigo.

Prof.: Jara C. Miguel A.

systemjara.net@gmail.com

Vous aimerez peut-être aussi