En este post voy a explicar cómo dar
solución al problema de la repetición de código en un proyecto.
Es muy habitual en Java que varios métodos o eventos tengan que ejecutar
el mismo código. En este caso se plantea la necesidad de “copiar y pegar” ese
código en los distintos métodos o eventos a programar:
Esta es una mala forma de programación, ya que si va a modificar el
código, sería necesario realizar la modificación en cada copia del código. Es
muy fácil que haya olvidos y aparezcan errores en el proyecto que luego son muy
difíciles de localizar.
Lo mejor es que el código que tenga que ser ejecutado desde distintos métodos
o eventos aparezca sólo una vez, y sea llamado desde cada método o evento:
Veamos un ejemplo en el que el código se puede repetir y como evitar dicha
repetición.
- Crea un nuevo
proyecto en java y nombralo ProyectoCalculos.
- Dentro
de Source Packages crea un Java
Package y llamalo paqueteCalculos.
- Dentro
de paqueteCalculos crea un JFrame Form y
nombralo VentanaCalculos.
- El proyecto
tendrá el siguiente aspecto:
- La VentanaCalculos debe estar diseñada
de la siguiente forma:
Esta ventana contiene los siguientes elementos:
-
Una
barra de menús a la que puede llamar mnuBarra.
-
La barra
de menús contiene un JMenu con el texto “Calcular” y que se puede llamar mnuCalcular
-
El mnuCalcular contendrá tres JMenuItem,
llamados respectivamente: mnuSumar,
mnuRestar, mnuBorrar y con los textos “Sumar”,
“Restar” y “Borrar”.
-
Una
etiqueta con el texto “Número 1:”. (no interesa su nombre)
-
Una
etiqueta con el texto “Número 2:”. (no interesa 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 sin texto, con borde llamada etiResultado.
-
Un botón
con el texto “Sumar” de nombre btnSumar.
-
Un botón
con el texto “Restar” de nombre btnRestar.
-
Un botón
con el texto “Borrar” de nombre btnBorrar.
- Aquí puedes ver
la ventana en ejecución con el menú “Calcular” desplegado:
- El objetivo de
programa es el siguiente:
- El usuario
introducirá números en los cuadros de texto.
- Si pulsa el
botón Sumar, se calculará la suma.
- Si pulsa el
botón Restar, se calculará la resta.
- Si pulsa el
botón Borrar, se borrarán ambos cuadros de texto.
- Si elige la
opción del menú Calcular-Sumar entonces se calculará la suma.
- Si elige la
opción del menú Calcular-Restar entonces se calculará la resta.
- Si elige la
opción del menú Calcular-Borrar entonces se borrarán ambos cuadros de
texto.
- Si se pulsa
enter en alguno de los dos cuadros de texto se debería calcular la suma.
- Este es un
ejemplo en el que al activarse uno de varios eventos distintos se tiene
que ejecutar el mismo código. Observa el caso de la suma:
- Para que el
código esté “centralizado”, es decir, que aparezca sólo una vez, será
necesario construir en la clase un método.
Un método en java es el
equivalente de una función o procedimiento en C. Veamos como hacerlo:
- Accede al
código de tu programa a través del botón “Source”
(u “Origen” dependiendo del idioma del NetBeans instalado en la
computadora que estas utilizando) para acceder al código:
- Un buen sitio
para programar tus métodos puede ser debajo del método constructor. Puedes
distinguir fácilmente al método constructor porque tiene el mismo nombre
que la clase que estás programando, o dicho de otro modo, tiene el mismo
nombre que la ventana que estás programando: VentanaCalculos.
- Se va a
programar un método 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 métodos en java tienen prácticamente la misma
estructura que los procedimientos en C. Programe lo siguiente:
- Si observas el
código, es el típico procedimiento de C, cuya cabecera comienza con void y el nombre que le hayas
asignado (en nuestro caso sumar):
void sumar()
{
…
}
Si estudias las líneas del código, verás que lo que
hace es recoger los contenidos de los dos cuadros de texto convertidos en números
que se almacena en dos variables enteras llamadas num1 y num2.
Seguidamente suma las variables num1
y num2
en otra variable entera llamada suma y presenta el resultado en la
etiqueta etiResultado.
- Hay que
destacar que este código no pertenece ahora mismo a ningún evento en
concreto, por lo que no tiene efecto alguno sobre el programa. Será
necesario pues asociar los eventos correspondientes con este método.
- Interesa que al
pulsar el botón “Sumar” se ejecute la suma, así pues entre en el evento actionPerformed del botón “Sumar” y
añada la siguiente línea:
sumar();
- Como también
interesa que al pulsar la opción del menú “Calcular-Sumar” se ejecute la
suma, entre en el evento actionPerformed
de la opción del menú “Sumar” y añade de nuevo la siguiente línea:
sumar();
- También se
quiere que al pulsar la tecla enter en el cuadro de texto del número 1 se
ejecute la suma. Por lo tanto, en el evento actionPerformed del cuadro de texto txtNumero1 hay que
añadir la siguiente línea:
sumar();
- Y como también
se quiere que al pulsar la tecla enter en el cuadro de texto del número 2
se ejecute la suma, también habrá que introducir en su actionPerformed la siguiente línea:
sumar();
- Antes de
continuar, ejecute el programa, introduzca dos números, y compruebe como
se calcula la suma al pulsar el botón Sumar, o al activar la opción 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 método sumar, que es el que se
encarga de realizar la suma.
- En el caso de
la resta sucede igual. Tenemos que varios eventos distintos deben provocar
que se realice una misma operación. En este caso tenemos lo siguiente:
- Para
centralizar el código, crearemos un método restar que se
encargará de hacer la resta de los números introducidos en los cuadros de
texto. Este método se puede colocar debajo del anterior método sumar:
- El código de
este método es prácticamente idéntico al del método sumar, así que no se
comentará.
- Ahora, es
necesario que cuando se activen los eventos indicados anteriormente, estos
hagan una llamada al método restar para que se efectúe la
resta. Así pues, entre en el evento actionPerformed
del botón “Restar” y añada esta
línea de código:
restar();
- Igualmente,
entre en el evento actionPerformed
de la opción del menú “Calcular –
Restar” y añada la misma llamada:
restar();
- Ejecute el proyecto
y compruebe como funciona el cálculo de la resta, da igual que lo haga
pulsando el botón “Restar” o la opción del menú “Restar”. Ambos eventos
llaman al mismo método:
- Finalmente se
programará el borrado de los cuadros de texto a través del botón “Borrar”
y de la opción del menú “Borrar”. En primer lugar, programa el siguiente
método (puedes hacerlo debajo del método “restar”):
- Ahora programa
las llamadas al método borrar desde los distintos
eventos. En el evento actionPerformed
del botón “Borrar” y en el evento actionPerformed
de la opción del menú “Borrar” programa la siguiente llamada:
borrar();
- Ejecuta el proyecto
y prueba su funcionamiento.
CONCLUSIONES:
En java
se pueden programar métodos al igual que los procedimientos en el lenguaje de programación
C. Normalmente, estos métodos se programarán debajo del método constructor, y
tienen la misma estructura que en C.
Se puede
llamar a un mismo método desde distintos eventos, evitando así la repetición de
código.
No hay comentarios.:
Publicar un comentario