You are on page 1of 113

Curso Junta. Programador de Aplicaciones Informticas LENGUAJE JAVA.

EJERCICIOS GUIADOS 1/21

EJERCICIO GUIADO. JAVA: INTRODUCCIN AL JAVA

INTRODUCCIN 1. Caractersticas del Lenguaje Java: a. Es un lenguaje multiplataforma. Esto significa que se puede hacer un programa en Java y este programa puede ser ejecutado en distintos sistemas operativos. b. Mquina Virtual de Java. Este programa se encarga de ejecutar los programas java instalados en el ordenador. Un ordenador sin la mquina virtual de java no podr ejecutar programas java. c. Se puede descargar la Mquina Virtual de Java gratuitamente desde la siguiente direccin. http://www.java.com/es/download/

2. Compilador de Java. a. Para crear programas en Java es necesario un IDE de Java, es decir, un entorno integrado de desarrollo, o dicho brevemente, un compilador. b. Existen distintos entornos gratuitos que permiten la creacin de programas Java. En estas lecciones se usar el NetBeans, que puede ser bajado desde la siguiente direccin: http://www.netbeans.org c. Para las siguientes hojas se proporcionar la versin NetBeans 5.5 en espaol.

3. Instale el NetBeans versin 5.5 en su ordenador.

Curso Junta. Programador de Aplicaciones Informticas LENGUAJE JAVA. EJERCICIOS GUIADOS 2/21

CREACIN DE UN PROYECTO JAVA EN NETBEANS

1. Creacin de un proyecto Java en NetBeans. Realice los siguientes pasos:

a. Active la opcin Archivo Nuevo Proyecto. b. Active la opcin General y Aplicacin Java, y pulse el botn Siguiente:

c. Indique un nombre para su proyecto. En el ejemplo el nombre ser GestionEmpresa.

d. Indique la carpeta donde quiere guardar su proyecto, usando el botn Examinar.

Curso Junta. Programador de Aplicaciones Informticas LENGUAJE JAVA. EJERCICIOS GUIADOS 3/21

Curso Junta. Programador de Aplicaciones Informticas LENGUAJE JAVA. EJERCICIOS GUIADOS 4/21

e. Active la opcin Configurar como proyecto principal y desactive la opcin Crear clase principal.

f. Y finalmente se pulsa el botn Terminar.

2. Observar que en la parte izquierda de la ventana aparecern el proyecto que acaba de crear y los elementos que contienen.

3. Despliegue el elemento Paquetes de origen haciendo clic en el +. El resultado ser el siguiente:

Curso Junta. Programador de Aplicaciones Informticas LENGUAJE JAVA. EJERCICIOS GUIADOS 5/21

4. Los paquetes de un proyecto java contendrn las distintas ventanas (formularios) que forman el programa. Ahora aadiremos el primer formulario al proyecto. Para ello haga clic con el derecho sobre el elemento paquete predeterminado, y elija la opcin Nuevo Formulario JFrame.

5. Asigne un nombre al formulario que va a crear. En el ejemplo el nombre ser FormularioPrincipal. Y pulse el botn Terminar.

Curso Junta. Programador de Aplicaciones Informticas LENGUAJE JAVA. EJERCICIOS GUIADOS 6/21

6. Ya ha creado su primer proyecto en Java y le ha aadido su primer formulario. Despus aadiremos elementos al formulario, pero antes, veamos las distintas partes de la ventana de NetBeans.

Curso Junta. Programador de Aplicaciones Informticas LENGUAJE JAVA. EJERCICIOS GUIADOS 7/21

PANTALLA PRINCIPAL DE NETBEANS: VENTANA DE DISEO Es la ventana donde crear los formularios (ventanas) con sus elementos (cuadros de textos, botones, etc...) a. Barra de Mens y de Herramientas.

En la parte superior tenemos la barra de mens y la barra de herramientas, desde donde se podrn crear proyectos nuevos y ejecutarlos.

b. Zona de Proyectos.

En la parte izquierda aparecer una ventana que contendr los distintos proyectos con los que se est trabajando en este momento. c. Paleta de controles.

Curso Junta. Programador de Aplicaciones Informticas LENGUAJE JAVA. EJERCICIOS GUIADOS 8/21

En la parte derecha aparece un listado con distintos controles que pueden ser aadidos al proyecto (cuadros de textos, botones, etc...)

d. Inspector.

La zona del inspector nos indica los controles que han sido aadidos al formulario.

e. Propiedades.

Curso Junta. Programador de Aplicaciones Informticas LENGUAJE JAVA. EJERCICIOS GUIADOS 9/21

La zona de propiedades contiene las propiedades del elemento que se seleccione en el formulario. f. Salida.

La zona inferior mostrar informacin de todo tipo. Por ejemplo errores producidos en el cdigo, informacin sobre depuracin, datos de la ejecucin del programa etc.

VENTANA DE CDIGO Es la ventana donde programar el cdigo asociado a cada elemento (cuadro de texto, botn, etc...) Para acceder a la ventana de cdigo pulse el botn Origen que se encuentra en la parte superior de la ventana. Para volver a la ventana de diseo usar el botn Diseo.

Curso Junta. Programador de Aplicaciones Informticas LENGUAJE JAVA. EJERCICIOS GUIADOS 10/21

Curso Junta. Programador de Aplicaciones Informticas LENGUAJE JAVA. EJERCICIOS GUIADOS 11/21

a. Editor de cdigo. La ventana de cdigo muestra un editor donde se escribir el cdigo del programa (hay cdigo que se genera automticamente):

b. Navegador. Esta zona aparece en la parte izquierda y muestra la estructura del cdigo (funciones que contiene, variables, objetos, etc...)

Curso Junta. Programador de Aplicaciones Informticas LENGUAJE JAVA. EJERCICIOS GUIADOS 12/21

AADIR ELEMENTOS AL FORMULARIO 1. Vuelva a la ventana de diseo pulsando el botn Diseo:

2. Acceda a la Paleta de Controles y arrastre el control llamado JLabel sobre el formulario:

Un control JLabel es una Etiqueta, y se usa para mostrar un texto en el formulario.

Curso Junta. Programador de Aplicaciones Informticas LENGUAJE JAVA. EJERCICIOS GUIADOS 13/21

3. Haga doble clic sobre la etiqueta que acaba de aadir y cambie su texto. Escriba Nmero 1: :

4. Aada dos etiquetas ms, de forma que su formulario quede as (puede cambiar el tamao del formulario haciendo clic en su borde y arrastrando):

Curso Junta. Programador de Aplicaciones Informticas LENGUAJE JAVA. EJERCICIOS GUIADOS 14/21

5. Ahora se aadir un cuadro de texto. Para ello acceda a la Paleta de Controles y arrastre el control llamado JTextField:

Los JTextField son cuadros de textos. Un cuadro de texto permite al usuario del programa introducir datos escritos.

6. El formulario debera verse as:

7. El contenido inicial de un cuadro de texto puede ser cambiado fcilmente haciendo clic en el interior del cuadro de texto. Escriba un cero en el cuadro que insert:

Curso Junta. Programador de Aplicaciones Informticas LENGUAJE JAVA. EJERCICIOS GUIADOS 15/21

8. Al cambiar el contenido de un cuadro de texto puede que vare su tamao. Pero luego puede estirar el cuadro usando los tiradores de este:

9. Agregue dos cuadros de texto ms de forma que el formulario quede como sigue:

10. Ahora agregaremos un botn. Para ello arrastre desde la Paleta de Controles un control JButton.

Curso Junta. Programador de Aplicaciones Informticas LENGUAJE JAVA. EJERCICIOS GUIADOS 16/21

Los controles JButton son botones, como por ejemplo el tpico botn Aceptar de los cuadros de dilogo.

11. Su formulario debera quedar ahora ms o menos as:

12. El texto del botn puede ser cambiado fcilmente haciendo doble clic sobre l. Cambie el texto del botn que acaba de aadir y escriba Suma en l. El botn debe quedar como sigue:

13. Aada otro botn de forma que el formulario quede as:

Curso Junta. Programador de Aplicaciones Informticas LENGUAJE JAVA. EJERCICIOS GUIADOS 17/21

14. Nombres de los elementos. Resulta muy necesario asignar un nombre a cada elemento que se ha aadido al formulario. Estos nombres se usarn luego en el cdigo a programar.

15. Asignaremos un nombre al primer cuadro de texto. Para ello hacemos clic con el botn derecho del ratn sobre l y activamos la opcin Cambiar nombre de variable:

16. Asignaremos el nombre txtNumero1. El prefijo txt lo usamos para indicar que estamos ante un cuadro de texto.

Curso Junta. Programador de Aplicaciones Informticas LENGUAJE JAVA. EJERCICIOS GUIADOS 18/21

17. Use esta misma tcnica para asignar los siguientes nombres a los distintos elementos de su formulario:

Cuadro de texto del Nmero 2 txtNumero2 Cuadro de texto del Resultado txtResultado Etiqueta del Nmero 1 etiNumero1 Etiqueta del Nmero 2 etiNumero2 Etiqueta del Resultado etiResultado Botn Sumar btnSumar Botn Limpiar btnLimpiar

Curso Junta. Programador de Aplicaciones Informticas LENGUAJE JAVA. EJERCICIOS GUIADOS 19/21

18. Una vez cambiados todos los nombres, podr observar en la zona del Inspector todos los elementos que contiene su formulario:

EJECUTAR UN PROYECTO JAVA 1. Para ejecutar un proyecto java use el botn Ejecutar Proyecto Principal (F6) de la barra de herramientas:

2. En la primera ejecucin de su proyecto, es posible que NetBeans le pida que indique cual es la clase principal. (La clase principal se refiere al formulario principal del programa)

Curso Junta. Programador de Aplicaciones Informticas LENGUAJE JAVA. EJERCICIOS GUIADOS 20/21

Solo tendr que seleccionar el FormularioPrincipal (el nico que tiene) y pulsar Aceptar.

3. Si todo va bien, aparecer la ventana que ha diseado:

Podr introducir datos en los cuadros de texto, y pulsar lo botones, pero el programa no har nada ya que no se ha escrito ningn cdigo que acte como respuesta a las pulsaciones de los botones Suma y Limpiar. Esto se ver en la prxima hoja. 4. Cierre el NetBeans para finalizar.

Curso Junta. Programador de Aplicaciones Informticas LENGUAJE JAVA. EJERCICIOS GUIADOS 21/21

CONCLUSIONES NetBeans permite la creacin de proyectos Java y aadir a estos un formulario (JFrame) Sobre el formulario se pueden agregar componentes desde la Paleta de Componentes. Entre los componentes tenemos los siguientes: - JLabel. Etiqueta que contiene un texto. - JTextField. Cuadro de texto para que el usuario introduzca un dato. - JButton. Botn de formulario. Es muy recomendable asignar nombres a los elementos de un formulario. NetBeans tiene una ventana de diseo desde donde crear los formularios y otra ventana de cdigo desde donde se escribir el cdigo asignado a cada elemento.

EJERCICIO GUIADO. JAVA: INTRODUCCIN A LA PROGRAMACION JAVA

PASOS GENERALES EN LA CREACIN DE UN PROYECTO JAVA 1. Se disea la interfaz del programa, es decir el formulario o formularios. a. Se aaden los elementos del formulario. b. Se asignan nombres a dichos elementos. 2. Se programan los eventos del formulario. a. Se programa que sucede cuando se pulsa un botn, cuando se escribe algo en un cuadro de texto, etc...

En la hoja anterior se hizo un ejemplo de diseo de la interfaz de un programa. En esta hoja se programarn los eventos de dicho programa.

PROGRAMACIN DE EVENTOS 1. Abra el programa NetBeans. 2. Observar que en la ventana de proyectos automticamente aparece el ltimo o ltimos proyectos con los que trabaj. As pues, es posible que aparezca el proyecto GestionEmpresa que fue creado en la hoja anterior.

3. En el caso de que dicho proyecto no apareciera, lo abriremos. Para ello pulse la opcin Archivo Abrir Proyecto.

4. Busque la carpeta que contiene el proyecto, seleccinela y pulse Abrir.

5. Visualice la ventana de diseo a travs del botn Diseo, que se encuentra en la parte superior de la ventana:

6. La interfaz del proyecto tiene el siguiente aspecto:

El objetivo que perseguimos es que al pulsar el botn Suma se sume el nmero 1 y el 2 y el resultado aparezca en el cuadro de texto del resultado. Al pulsar el botn Limpiar, aparecer un 0 en cada cuadro de texto. Para ello debemos programar el evento Pulsar del botn Suma y el evento Pulsar del botn Limpiar.

7. Empezaremos programando el evento Pulsar del botn Limpiar. Para ello haga clic sobre el botn Limpiar.

8. A continuacin pulse la pestaa Eventos en la ventana de Propiedades.

9. En esta ventana aparecern los distintos eventos que pueden ser programados del botn Limpiar:

Eventos

10. El evento Pulsacin de un botn se denomina actionPerformed, as que para programarlo haremos un clic sobre la palabra <ninguna> del evento actionPermformed y luego pulsaremos Enter.

Clic, y Enter

11. Se mostrar entonces la ventana de cdigo. En ella aparecer una serie de lneas de cdigo ya generadas por NetBeans, a las que de momento no prestaremos atencin.

12. La parte del cdigo que nos interesa ahora es la siguiente:

Este cdigo representa el evento actionPerformed del botn Limpiar. Observe la primera lnea, aparece el nombre del botn y el nombre del evento:

El evento est delimitado por dos llaves:

El cdigo del evento se escribir entre las dos llaves. De hecho, aparece un comentario indicando donde hay que escribir el cdigo:

13. Escriba el siguiente cdigo donde se indica:

14. Este cdigo introduce un cero dentro de cada cuadro de texto. El mtodo setText se usa para introducir un texto dentro de un cuadro de texto. Por ejemplo, si tuviera un cuadro de texto llamado txtCiudad, podra introducir el valor Jerez dentro de dicho cuadro de texto de la siguiente forma: txtCiudad.setText(Jerez);

15. El mtodo setText se puede usar en general para cualquier objeto que tenga texto (cuadros de textos, etiquetas, botones, etc...) Su forma de uso general es la siguiente: nombreelemento.setText(texto a mostrar);

16. Ya puede ejecutar el programa pulsando el botn Ejecutar Proyecto Principal:

17. Escriba lo que quiera en los cuadros de textos y pulse el botn Limpiar. Observar que los cuadros de textos se vuelven a poner a 0.

Introduzca nmeros en los cuadros de texto...

y al pulsar Limpiar los cuadros se pondrn a cero.

18. Ahora se programar la pulsacin del botn Suma. Se pretende que al pulsar Suma se sumen los nmeros 1 y 2 y el resultado aparezca en el cuadro de texto del resultado. Acceda a la ventana de Diseo.

19. Para programar la pulsacin del botn Suma haga un clic sobre l y acuda a la zona de eventos:

Selecciona el botn...

...y accede a los eventos del botn. 20. Recuerde que la pulsacin de un botn se programa a travs del evento actionPerformed. Haga clic en dicho evento (sobre la palabra ninguna) y pulse Enter.

21. Aparecer la zona de cdigo donde tiene que introducir el cdigo que sume los dos nmeros:

22. Introduzca el siguiente cdigo (luego se comentar):

23. Explicacin del cdigo lnea a lnea:

int s, n1, n2; Esta lnea crea tres variables llamadas respectivamente s, n1 y n2. La palabra int indica que estas variables contendrn nmeros enteros.

String txtn1, txtn2; Esta lnea crea dos variables ms, llamadas txtn1, txtn2. La palabra String indica que estas variables de cadena. Es decir, que contendrn texto.

txtn1 = txtNumero1.getText(); txtn2 = txtNumero2.getText(); Estas dos lneas extraen el contenido de los cuadros de texto txtNumero1 y txtNumero2 y los almacenan en las variables de texto txtn1 y txtn2. El mtodo getText() significa extrae el texto que contiene. Por tanto, el trozo de cdigo txtNumero1.getText() significa extrae el texto contenido en el cuadro de texto txtNumero1. Ese texto extrado se almacena en una variable de texto. En nuestro ejemplo txtn1. De igual manera se ha hecho con el cuadro de texto txtNumero2.

n1 = Integer.parseInt(txtn1); n2 = Integer.parseInt(txtn2); Estas dos lneas cogen las variable txtn1 y txtn2 y las convierten en nmeros, almacenndolos en las variables numricas n1 y n2. Este paso es necesario para poder hacer el clculo matemtico de la suma. El cdigo n1 = Integer.parseInt(txtn1); convierte el dato de la variable txtn1 en nmero entero y lo almacena en la variable n1. La segunda lnea convierte el dato de la variable txtn2 en nmero y lo almacena en la variable numrica n2.

s = n1 + n2; Ahora que tenemos los nmeros en las variables numricas n1 y n2 ya podemos sumarlos y almacenar la suma en la variable s.

txtResultado.setText(+s); Esta instruccin introduce en el cuadro de texto txtResultado la variable s (la suma que se ha calculado). Observa que se usa setText para mostrar el texto en el cuadro txtResultado. Observa que se escribe +s para mostrar la variable numrica s.

24. Ejecute el programa y pruebe el funcionamiento del botn Sumar.

Introduce el nmero 1 y 2... Y se calcular la suma.

Pulsa sumar...

EJERCICIO ADICIONAL Siguiendo los mismos pasos que los indicados anteriormente aada al programa un botn Restar que reste el nmero 1 menos el nmero 2. Aada luego un botn Multiplicar que multiplique el nmero 1 por el nmero 2.

CONCLUSIONES Programacin de la pulsacin de un botn Para programar la pulsacin de un botn use el evento llamado: actionPerformed Creacin de variables Para crear una variable entera llamada x use la siguiente instruccin: int x; Para crear una variable de texto llamada x use la siguiente instruccin: String x; Otros tipos de variables:
double x; boolean x; //x sera un nmero real //x sera una variable booleana (true / false)

En general, para crear una variable x de un tipo de terminado se usa la instruccin: Tipo x;

Donde Tipo es el tipo de variable que se quiere crear.

Mostrar texto en un cuadro de texto u otros elementos Para mostrar un texto en un elemento del formulario se usa el mtodo setText de la siguiente forma: elemento.setText(texto a mostrar);

Para mostrar una variable numrica x en un elemento del formulario se usa el mtodo setText de la siguiente forma: elemento.setText(+x);

Recoger el contenido de un cuadro de texto u otro elemento

Para recoger el contenido de un elemento del formulario en una variable de texto llamada txt se usar el mtodo getText de la siguiente forma: txt = elemento.getText();

Para convertir el dato de una variable de texto txt en nmero entero y almacenarlo en una variable numrica n se usar la siguiente instruccin: n = Integer.parseInt(txt); Recuerde que esto es necesario hacerlo con los datos recogidos de los cuadros de textos para poder hacer clculos numricos.

Si lo que se pretende es convertir la variable de texto txt en un nmero real, use esta otra instruccin: n = Double.parseDouble(txt); En este caso la variable n debe ser del tipo double.

EJERCICIO GUIADO. JAVA: INSTRUCCIONES ALTERNATIVAS

INTRUCCIONES ALTERNATIVAS 1. Una instruccin alternativa permite ejecutar un cdigo u otro segn si se cumple o no una condicin. La instruccin alternativa ms usada es la instruccin alternativa SI (if) 2. La sintaxis de las instrucciones alternativas de Java es igual a la sintaxis de otros lenguajes tales como C o PHP. 3. Instrucciones SI: SI simple.
if (condicion) { instrucciones }

Si se cumple la condicin se ejecutan las instrucciones. En caso contrario no se ejecutan. SI doble.


if (condicion) { instrucciones A } else { instrucciones B }

Si se cumple la condicin se ejecutan las instrucciones A. En caso contrario se ejecutan las instrucciones B. Si mltiple.
if (condicion1) { instrucciones A } else if (condicion2) { instrucciones B } else if (condicion3) { instrucciones C ... } else { instrucciones Z }

Si se cumple la condicion1 se ejecutan las instrucciones A. En caso contrario, si se cumple la condicion2, se ejecutan las instrucciones B, etc... En caso de que no se cumpla ninguna de las condiciones se ejecutarn las instrucciones Z.

EJEMPLO DE USO DE INSTRUCCIONES ALTERNATIVAS 1. Entre en NetBeans. 2. Cree un nuevo proyecto. Archivo Nuevo Proyecto. El nombre del proyecto ser Notas. Configrelo como Proyecto Principal. Desactive la opcin Crear Clase Principal.

3. Agregue al proyecto un formulario. (Botn derecho en paquete predeterminado, Nuevo Formulario JFrame)

El nombre del formulario ser Principal.

4. Aadir al formulario cuadros de textos, botones y etiquetas de forma que el formulario quede as:

5. Asigne los siguientes nombres a los siguientes elementos (Botn derecho Cambiar Nombre de Variable) txtTri1 txtTri2 txtTri3 etiNota1 etiNota2 etiNota3

etiMedia btnCalcular

6. Ahora se programar el botn Calcular de forma que al pulsarse aparezca en las etiquetas etiNota la nota correspondiente (Insuficiente, Notable, etc...) a la puntuacin introducida en cada trimestre.

7. Acceda al evento actionPerformed del botn Calcular:

8. En la zona de cdigo de dicho evento escriba el siguiente cdigo:

9. Explicacin del cdigo:


String texto1, texto2, texto3;

Esta lnea crea tres variables de texto que se usarn para extraer el contenido de los tres cuadros de texto del formulario.
double nota1, nota2, nota3;

Esta lnea crea tres variables numricas reales (es decir, con decimales) que se usarn para convertir el contenido de los cuadros de texto del formulario a nmeros.

texto1 = txtTri1.getText();

Esta lnea extrae el contenido del primer cuadro de texto (txtTri1) y lo almacena en la variable texto1.
nota1 = Double.parseDouble(texto1);

Esta lnea convierte el texto extrado del primer cuadro de texto en nmero y lo almacena en la variable nota1.

if (nota1>=0 && nota1<5) { etiNota1.setText("Insuficiente"); } else if (nota1>=5 && nota1<6) { etiNota1.setText("Suficiente"); } else if (nota1>=6 && nota1<7) { etiNota1.setText("Bien"); } else if (nota1>=7 && nota1<9) { etiNota1.setText("Notable"); } else if (nota1>=9 && nota1<=10) { etiNota1.setText("Sobresaliente"); } else { etiNota1.setText("Error"); }

Este cdigo es una instruccin alternativa mltiple, en la que se comprueban distintas condiciones usando la variable nota1. Segn el valor de esta, la nota obtenida por el alumno ser una u otra. Observe como segn la nota se escribe un texto distinto en la etiqueta etiNota1. En el caso de que la nota1 no tenga un valor vlido, se mostrar un error.

10. Ejecute el programa y compruebe su funcionamiento (tendr que indicar cual es el formulario principal al ejecutar el programa):

Introduce una nota numrica en el cuadro de texto txtTri1...

... y al pulsar el botn Calcular se mostrar la nota en texto en la etiqueta etiNota1.

11. Acceda a la zona de cdigo y contine la programacin del botn Calcular. Aada el siguiente cdigo:

Este cdigo hace bsicamente lo mismo que el anterior. Toma el contenido del cuadro de texto txtTri2, lo convierte a nmero y luego comprueba que nota le corresponde a dicho nmero. La nota se muestra en la etiqueta etiNota2.

12. Ejecute el programa y compruebe el funcionamiento.

Introduce las notas numricas y al pulsar el botn Calcular se mostrarn las notas en texto.

13. Ahora programe usted el cdigo necesario para el Trimestre 3.

14. Finalmente haremos que al pulsar el botn Calcular se muestre la nota media del alumno. Para ello aada el siguiente cdigo en el evento del botn Calcular.

15. Explicacin del cdigo:


double m;

Esta instruccin crea una variable llamada m de tipo numrica real. Esta variable contendr la media calculada.
m = (nota1 + nota2 + nota3) / 3;

Esta instruccin calcula la nota media a partir de las tres notas de los trimestres.
m = Math.round(m*100.0) / 100.0;

Esta instruccin redondea la media a 2 decimales. La forma de hacerlo es la siguiente: Se multiplica la media por 100. (m*100.0) Se eliminar los decimales: Math.round(m*100.0) Y se vuelve a dividir la media por 100:
Math.round(m*100.0) / 100.0

El resultado se almacena de nuevo en la variable m.

En general, para redondear una variable x a 1 decimal se usar la siguiente instruccin:


x = Math.round(x*10.0) / 10.0

Si se quiere redondear a 2 decimales se usar la siguiente instruccin:


x = Math.round(x*100.0) / 100.0

Para tres decimales:


x = Math.round(x*1000.0) / 1000.0

Etc...

etiMedia.setText(+m);

Esta instruccin muestra la media calculada y ya redondeada en la etiqueta etiMedia.

16. Ejecute el programa:

Se introducen las notas y se pulsa Calcular. Aparecern las notas en texto y se calcular y mostrar la media.

CONCLUSIONES Instrucciones alternativas En java las instrucciones alternativas mantienen la misma sintaxis que la de lenguajes de programacin como el C o el PHP.

Las condiciones se construyen usando los mismos operadores relacionales y lgicos que los lenguajes C o PHP:

> < >= <= == !=

Mayor que Menor que Mayor o igual que Menor o igual que Igual que Distinto de

&& || !

Operador Y (and) Operador O (or) Operador No (not)

Redondeo de una variable El redondeo de una variable se realiza usando la funcin Math.round de la siguiente forma: variable = Math.round(variable * c ) / c;

Donde c valdr: 10.0 si se quiere redondear a 1 decimal. 100.0 si se quiere redondear a 2 decimales. 1000.0 si se quiere redondear a 3 decimales. etc...

EJERCICIO GUIADO. JAVA: OBJETOS Y PROPIEDADES

OBJETOS Y PROPIEDADES 1. En Java todo elemento es un objeto que tiene propiedades, ya estemos hablando de un cuadro de texto, un botn o una etiqueta o cualquier otro elemento. 2. Los distintos objetos de un programa Java tiene propiedades que pueden ser cambiadas desde diseo o desde cdigo. 3. Estas propiedades pueden ser: el color, tipo de letra, tamao, posicin, etc... 4. Existen propiedades que son comunes a muchos elementos, mientras que otras solo pertenecen a determinada clase de objetos.

CAMBIO DE PROPIEDADES DESDE DISEO 1. Primero se experimentar con el cambio de propiedades desde la ventana de diseo. Para ello, entre en NetBeans y cree un proyecto nuevo. El nombre del proyecto ser Conversion.

2. Agregue un formulario al proyecto. Llame al formulario Principal.

3. Un formulario es un objeto como cualquier otro. Haga clic sobre el formulario. En la parte inferior derecha aparecer el listado de propiedades del formulario:

4. Se practicar con algunas propiedades. Busque la propiedad title y asigne el ttulo Conversor.

Esta propiedad permite cambiar el ttulo del formulario. Si ejecuta el programa podr verlo:

5. Cambiemos otra propiedad. En este caso, desactivaremos la propiedad resizable, lo cual har que la ventana no pueda ser cambiada de tamao, ni tampoco ser maximizada. Compruebe esto ejecutando el programa:

6. El tamao del formulario puede ser cambiado directamente desde diseo, arrastrando el borde del formulario. Disminuya el tamao del formulario.

7. Ahora agregue al formulario los siguientes elementos (asigne los nombres que se indican): Etiqueta etiTitulo

Cuadro de texto txtEuros

Etiquetas (no asigne nombre)

Etiqueta etiPesetas

Botn btnConvertir

8. Ahora cambiaremos algunas propiedades de los elementos del formulario. Seleccione la etiqueta del ttulo y busque la propiedad font. Esta propiedad permite cambiar la fuente del objeto. Asigne la fuente Arial, a un tamao de 14 y en negrita:

El formulario tendr el siguiente aspecto ahora:

9. Vuelva a seleccionar la etiqueta del ttulo. Active la propiedad opaque. Esta propiedad har que la etiqueta sea opaca. A continuacin cambie la propiedad background. Esta propiedad permite cambiar el color de fondo de la etiqueta. Finalmente cambie la propiedad foreground. Esta propiedad permite cambiar el color del texto de la etiqueta. El formulario puede quedar as:

10. Cambie las propiedades de color y fuente para otros elementos del formulario. Haga que quede de la siguiente forma aproximadamente:

11. La propiedad horizontalAlignment permite alinear el texto contenido en un elemento. Use esta propiedad para alinear a la derecha el cuadro de texto y la etiqueta etiPesetas.

12. A los elementos de un formulario se les puede aadir un borde. Esto se hace a travs de la propiedad border. Seleccione la etiqueta etiPesetas y active la propiedad border.

13. Al hacer clic en la propiedad border aparecer un cuadro de opciones donde se podr escoger un tipo de borde y configurar dicho borde. Para el ejemplo escoja un borde de tipo LineBorder, asigne un color rojo para este borde, marque la opcin esquinas redondeadas y aplique un grosor de 2.

14. Al aceptar, si ejecuta el programa, el aspecto de este debera ser ms o menos el siguiente:

15. Ahora seleccione el cuadro de texto y busque su propiedad toolTipText. Asigne a esta propiedad el texto Introduzca aqu los euros.

16. Un ToolTipText es un texto de ayuda que aparece al situar el puntero encima del elemento. Pruebe esto ejecutando el programa y situando el puntero sobre el cuadro de texto.

17. Existen multitud de propiedades ms que pueden ser cambiadas desde diseo. Se deja en manos del estudiante la investigacin de estas propiedades. 18. Como fuentes de investigacin se nombrarn las siguientes: Prueba. Pruebe las distintas propiedades. Experimente con ellas. Internet. Internet proporciona una fuente de informacin inmensa en lo que se refiere a las propiedades de los objetos Java. Busque en foros, pginas dedicadas a la programacin, examine ejemplos, etc... Documentacin. La empresa Sun Microsystems, creadora del lenguaje Java, proporciona en Internet una documentacin completa sobre los distintos objetos Java as como sus propiedades y dems elementos. Desgraciadamente esta documentacin est en ingls. En cualquier caso puede echarle un vistazo en la siguiente direccin: http://java.sun.com/j2se/1.4.2/docs/api/

De todas formas se vuelve a recordar al alumno que en Internet se pueden encontrar mltiples pginas con informacin en espaol sobre los objetos Java.

19. En esta hoja se ha visto como cambiar las propiedades de los elementos desde la ventana de diseo. Sin embargo, desde esta ventana las propiedades que podemos utilizar son limitadas. Desde la ventana de cdigo se podr acceder a todas las propiedades de los objetos de Java. Como hacer esto se estudiar en la siguiente hoja.

20. Como ejercicio final de repaso se propone que finalice el programa programando el botn Convertir, de forma que al pulsar dicho botn se calcule la conversin en pesetas de la cantidad de euros introducida:

Introduzca aqu los euros...

Y al pulsar el botn Convertir aparecern aqu las pesetas correspondientes.

CONCLUSIONES Objetos y Propiedades En java se dispone de multitud de objetos para la construccin de programas (formularios, botones, cuadros de textos, etc...) Estos objetos poseen propiedades que pueden ser cambiadas desde la vista diseo (color, tipo de letra, tamao, etc...) Las propiedades de un objeto tambin pueden ser cambiadas directamente desde cdigo. Debido a la multitud de objetos disponibles en Java as como a la multitud de propiedades que posee cada uno, se hace necesaria una amplia labor de investigacin para llegar a controlar una gran parte de estas propiedades.

EJERCICIO GUIADO. JAVA: CAMBIO DE PROPIEDADES DESDE DISEO. MTODOS

MTODOS 1. En Java se usan multitud de objetos (cuadros de textos, botones, etc...) cuyas propiedades pueden ser cambiadas desde diseo o desde cdigo. 2. El cambio de propiedades desde cdigo se realiza a travs de mtodos. 3. Un mtodo es una funcin que toma como parmetro el valor que se va a asignar a la propiedad. 4. La sintaxis para cambiar la propiedad de un elemento desde cdigo es la siguiente: elemento.metodo(valor) Donde: elemento es el elemento al que se le quiere cambiar la propiedad. metodo es el mtodo que permite cambiar la propiedad. valor es el valor que se le quiere asignar a la propiedad. 5. En esta hoja se vern distintos ejemplos de asignacin de valores a propiedades desde cdigo.

EJEMPLO DE CAMBIO DE PROPIEDADES DESDE DISEO 1. Entre en NetBeans y cree un proyecto nuevo llamado Circulo. 2. Agregue a dicho proyecto un formulario llamado Principal.

3. Agregue al formulario los siguientes elementos (asigne los nombres que se indican):

Etiqueta etiRadio

Cuadro de texto txtRadio

Etiqueta etiArea

Botn btnArea

Botn btnPropiedades

4. Acceda al evento actionPerformed del botn Propiedades y programe el siguiente cdigo:

5. Explicacin del cdigo. Este es un ejemplo de cambio de propiedad de un objeto desde cdigo. En este ejemplo se est cambiando el contenido del cuadro de texto txtRadio a travs de un mtodo llamado setText: txtRadio.setText(Hola); txtRadio elemento que se quiere cambiar. setText mtodo que permite cambiar el texto del elemento. Hola valor que se le quiere asignar al elemento.

6. Ejecute el programa y pruebe el botn Propiedades. Observe como afecta al cuadro de texto txtRadio.

Al pulsar el botn Propiedades, cambia el texto contenido en el cuadro de texto txtRadio.

6. Vuelva a la programacin del botn Propiedades y aada la siguiente lnea de cdigo:

7. El mtodo setSize sirve para cambiar el tamao de un objeto indicando el valor del ancho y del alto. En el ejemplo, se est asignando al cuadro de texto txtRadio y ancho de 80 y un alto de 30. txtRadio.setSize(80,30); txtRadio objeto que se va a cambiar. setSize mtodo que permite cambiar las propiedades ancho y alto. 80 valor asignado al ancho. 30 valor asignado al alto.

8. Ejecute el programa y observe como se comporta el cuadro de texto txtRadio al pulsar el botn Propiedades.

9. Sigamos experimentando. Aada la siguiente lnea de cdigo al botn Propiedades:

10. En este ejemplo estamos cambiando el color de fondo del cuadro de texto txtRadio. Esto se hace a travs del mtodo setBackground. Para asignar un color se usa un objeto llamado Color. Este objeto contiene distintos colores que pueden ser usados. En el ejemplo, estamos accediendo al color verde: Color.GREEN. Por tanto, estamos asignando el color verde al fondo del cuadro de texto. txtRadio.setBackground(Color.GREEN); txtRadio elemento que se va a cambiar. setBackground mtodo que permite cambiar el color de fondo. Color.GREEN valor correspondiente al color verde. (A travs del objeto Color se puede acceder a otros colores)

11. No ejecute el programa todava y observe la lnea discontnua roja que ha aparecido debajo de la lnea de cdigo anterior. Esto indica que existe un error en la lnea y el programa no puede ejecutarse. La razn es que el objeto Color pertenece a una librera de cdigo y es necesario importar esta librera en el programa para poder usar el objeto Color. Esto se hace de forma muy sencilla. Haga clic sobre la lnea de cdigo y aparecer una bombilla en la parte izquierda:

12. A continuacin haga clic en la bombilla y elija la opcin Agregar Import para Color:

Una vez hecho esto el error se corregir y la lnea roja desaparecer. Acostmbrese a esto ya que se usarn muchos objetos en Java que necesiten de una librera. Las lneas que contengan estos objetos se marcarn en rojo. Tenga en cuenta tambin que se marcarn en rojo todas aquellas lneas que contengan un error de cualquier tipo.

13. Ya puede ejecutar el programa y comprobar el funcionamiento del botn Propiedades.

14. El mtodo setForeground es similar al mtodo setBackground, solo que este permite cambiar el color de la letra. Use este mtodo para cambiar el color de la letra del cuadro de texto txtRadio cuando se pulse el botn Propiedades. Compruebe luego el resultado ejecutando el programa.

15. Sigamos practicando con mtodos que cambian propiedades. Acceda de nuevo a la programacin del botn Propiedades y aada la siguiente lnea al final:

16. Esta lnea cambia la situacin del elemento etiRadio. Concretamente lo sita en la posicin x: 200 e y:100.

17. Ejecute el programa y compruebe el funcionamiento: etiRadio.setLocation(200,100); etiRadio elemento que se cambia. setLocation mtodo que permite cambiar la situacin del elemento. 200 valor x del elemento. 100 valor y del elemento.

18. Un nuevo ejemplo. Aada la siguiente lnea al cdigo del botn Propiedades:

19. En este caso estamos cambiando la alineacin del botn btnArea. Para ello estamos usando un mtodo llamado setHorizontalAlignment. Este mtodo recibe como parmetro una constante que indica el tipo de alineacin de botn que se quiere. Esto se indica a travs del objeto JButton y la constante RIGHT que indica una alineacin derecha. btnArea.setHorizontalAlignment(JButton.RIGHT); btnArea elemento que se va a cambiar. setHorizontalAlignment mtodo que permite cambiar la alineacin. JButton.RIGHT valor que indica alineacin derecha de un botn.

20. Al igual que pas con el ejemplo del Color, NetBeans subrayar la lnea de color rojo para indicar que hace falta importar la librera para el objeto JButton. Use la bombilla para aadir la importacin de la librera:

21. Como ha podido observar, existen multitud de mtodos que permiten cambiar las propiedades de los elementos de la ventana. Por otro lado, algunos de estos mtodos usan valores especiales que pertenecen a otros objetos.

CAMBIO DE PROPIEDADES AL INICIAR EL PROGRAMA 1. En los ejemplos anteriores, el cambio de las propiedades de los objetos se realizaba al pulsar el botn Propiedades. En otros casos puede interesar que las propiedades de los elementos cambien en el momento en el que el programa se inicie. A continuacin se realizar algn ejemplo de esto.

2. Acceda a la zona de cdigo del programa Circulo a travs del botn Origen.

3. Si observa el cdigo ver una funcin que tiene el mismo nombre que el formulario: Principal. Esta funcin contiene una instruccin como la siguiente: initComponents(); Esta es la funcin:

4. Esta funcin se denomina Constructor y en ella se programa aquello que quiere que se ejecute al iniciar el programa. Por ejemplo, aada la siguiente lnea de cdigo en el Constructor:

5. Esta lnea pone al botn btnArea un color de fondo rojo. Esto sucede en el mismo momento en que se ejecuta el programa. Compruebe esto ejecutando el programa. 6. As pues todo lo que quiere que se ejecute al iniciar el programa lo programar en el constructor.

DOCUMENTACIN Y AYUDA 1. Cada objeto tiene multitud de mtodos que pueden ser usados de forma ms o menos compleja. Para poder manejar dichos mtodos es necesario muchas dosis de investigacin, experimentacin y acceso a la documentacin Java. 2. Se vuelve a recordar una vez ms que en Internet se puede encontrar multitud de pginas con informacin sobre los distintos mtodos de los objetos Java y ejemplos con forma de uso. 3. El compilador NetBeans proporciona un listado con los mtodos del objeto que est programando. Es posible que ya haya notado esto al realizar los ejemplos anteriores. Si escribe el nombre de un elemento y escribe el punto y espera, observar el listado de mtodos que se pueden usar. Por ejemplo, si escribe lo siguiente en la zona de cdigo: txtRadio. aparecer el listado de mtodos que puede aplicar al objeto txtRadio. Al seleccionar en el listado uno de los mtodos aparecer una pequea ayuda (en ingls ) de dicho mtodo.

Aparece un listado de posibles mtodos a usar...

Se escribe el elemento y punto...

Al seleccionar un mtodo aparece una ayuda.

4. A lo largo de las distintas hojas se irn comentando los mtodos ms interesantes de cada objeto que se vaya usando.

COMPLETAR EL EJERCICIO 1. Como ejercicio de repaso complete el ejercicio programando el botn Area de forma que al ser pulsado se calcule el rea del crculo correspondiente al radio introducido y dicha rea se muestre en la etiqueta etiArea.

CONCLUSIONES Objetos y Mtodos Se puede cambiar las caractersticas de los objetos de Java desde cdigo usando los mtodos. Cada mtodo permite cambiar una determinada caracterstica del objeto. Cada objeto posee un listado de mtodos posibles. La forma de usar un mtodo para cambiar una propiedad de un elemento es la siguiente: elemento.metodo(valor); Donde: elemento es el elemento a cambiar. mtodo es el mtodo que cambia la caracterstica del elemento. valor es el elemento a aplicar. Existen multitud de mtodos. Se recomienda la experimentacin e investigacin para acostumbrarse a todos ellos.

Importacin. Al programar en Java ser necesario usar objetos adicionales (por ejemplo Color o JButton) Ser necesario importar libreras para activar el uso de estos objetos. NetBeans indicar esto cuando sea necesario, y facilitar la importacin de estas libreras. En general, NetBeans subrayar en rojo aquellas lneas de cdigo que sean incorrectas.

Constructor. El Constructor es una funcin especial que tiene el mismo nombre que el formulario. El Constructor suele contener una instruccin como la siguiente: initComponents(); Lo que programe en el Constructor se ejecutar al iniciarse el programa.

EJERCICIO GUIADO. JAVA: MENSAJES EMERGENTES

MENSAJES EMERGENTES
1. Al igual que otros lenguajes como Visual Basic, Java dispone de la posibilidad de mostrar mensajes en cuadros de dilogos creados automticamente. 2. Estos cuadros de dilogo son ideales para mostrar avisos, errores, pedir confirmacin, etc... 3. Estos cuadros de dilogo se crean a travs de un objeto llamado JOptionPane cuyo uso se ver a continuacin.

EJEMPLO DE MENSAJES EMERGENTES

1. Crea un proyecto con el siguiente formulario:

Llame a un botn btnSaludo y al otro btnDespedida.

2. Acceda al evento actionPerformed del primer botn e introduzca la siguiente lnea de cdigo:

La lnea es la siguiente:
JOptionPane.showMessageDialog(null,Hola que tal, Saludo, JOptionPane.ERROR_MESSAGE);

3. Al escribir esta lnea aparecer un error ya que Java pide que se introduzca la librera para el objeto JOptionPane. Use la bombilla para agregar el import correspondiente.

4. Luego se comentar esta lnea de cdigo ms en profundidad. De momento ejecute el programa y pulse el botn Saludo.

5. Observar como aparece un mensaje emergente en un cuadro de dilogo:

6. Este mensaje ha sido lanzado por la lnea de cdigo anterior. Estudiemos dicha lnea de cdigo:
JOptionPane.showMessageDialog(null,Hola que tal, Saludo, JOptionPane.ERROR_MESSAGE);

JOptionPane.showMessage() JOptionPane es un objeto Java que permite lanzar mensajes emergentes de varios tipos. Su mtodo showMessage permite lanzar un mensaje como el que ha visto.

(null, Hola que tal, Saludo, JOptionPane.ERROR_MESSAGE) El mtodo showMessage tiene varios parmetros: El primero siempre tendr el valor null. El segundo ser el mensaje. En el ejemplo Hola que tal El tercero ser el ttulo del cuadro de dilogo. En el ejemplo Saludo. El cuarto ser el tipo de icono del cuadro de dilogo.

7. El ltimo de los parmetros permite indicar el tipo de icono que quiere que aparezca en el cuadro de dilogo. Tiene las siguientes posibilidades:

JOptionPane.ERROR_MESSAGE Muestra un icono de error. JOptionPane.INFORMATION_MESSAGE Muestra un icono de informacin. JOptionPane.QUESTION_MESSAGE Muestra un icono de pregunta. JOptionPane.WARNING_MESSAGE Muestra un icono de advertencia. JOptionPane.PLAIN_MESSAGE No muestra icono.

8. Resumiendo:
JOptionPane.showMessageDialog(null,Hola que tal, Saludo, JOptionPane.ERROR_MESSAGE);

9. Para practicar, programe usted el botn Despedida de forma que muestre un mensaje en un cuadro de dilogo. Pruebe con las distintas posibilidades de icono para el cuadro de dilogo.

10. Existe una variante reducida del mtodo showMessageDialog para mostrar un mensaje. Es la siguiente: JOptionPane.showMessageDialog(null,Mensaje);

Prubela en el programa.

EJEMPLO DE CUADRO DE PETICIN DE DATOS 1. Aparte de los mensajes emergentes, el objeto JOptionPane puede ser usado para mostrar cuadros de dilogo que pidan datos. 2. Para practicar con esto aada dos botones ms al proyecto anterior:

Llame a uno btnNombre y al otro btnCiudad.

3. En el botn del Nombre programe las siguientes lneas de cdigo:

Son las siguientes:


String n; n=JOptionPane.showInputDialog(null,"Dime tu nombre:","Nombre",JOptionPane.QUESTION_MESSAGE); JOptionPane.showMessageDialog(null,"Hola "+n+"!");

4. Antes de comentar las lneas anteriores ejecute el programa y pulse el botn Nombre. Observe el resultado. Aparecer un cuadro de dilogo pidindole que escriba su nombre. Luego aparecer un mensaje saludndole.

5. El cdigo funciona de la siguiente forma: String n; Esta lnea crea una variable de texto (donde introduciremos el nombre escrito por el usuario)

n=JOptionPane.showInputDialog(null,"Dime tu nombre:","Nombre",JOptionPane.QUESTION_MESSAGE);

Esta lnea es la que pide el nombre. Observa que se usa el objeto JOptionPane con otro mtodo. En este caso el mtodo showInputDialog. Los parmetros de esta instruccin son los siguientes: Primer parmetro: siempre tendr el valor null. Segundo parmetro: es el mensaje de peticin. En el ejemplo: Dime tu nombre Tercer parmetro: es el ttulo del cuadro de dilogo. En el ejemplo: Nombre. Cuarto parmetro: es el tipo de icono que aparece en el cuadro de dilogo.

n=JOptionPane.showInputDialog(null,"Dime tu nombre:","Nombre",JOptionPane.QUESTION_MESSAGE);

Es importante que observes como en este caso la instruccin se iguala a una variable. En el ejemplo la variable n. Esto permitir que el texto escrito por el usuario en el cuadro de dilogo se almacene en la variable: n = JOptionPane. ... JOptionPane.showMessageDialog(null,"Hola "+n+"!"); La ltima instruccin muestra en otro cuadro de dilogo emergente un saludo, concatenando la palabra Hola con el nombre introducido en la variable n y con una admiracin !. Observa como se est usando aqu la versin reducida del mtodo showMessageDialog.

6. Practique ahora programando el botn Ciudad, de forma que le pida la ciudad al usuario y luego se muestre un mensaje.

CUADROS DE CONFIRMACIN 1. Un cuadro de confirmacin es un cuadro de dilogo que le pregunta algo al usuario y pone a su disposicin distintas respuestas en forma de botones (Si / No / Aceptar / Cancelar, etc...) 2. Los cuadros de confirmacin tambin se crean usando el objeto JOptionPane. Para practicar, aada dos botones ms a su proyecto:

Uno se llamar btnPregunta y el otro btnOtraPregunta.

3. Dentro del botn Pregunta aada el siguiente cdigo:

4. Antes de analizar el cdigo ejecute el programa y pruebe el botn Pregunta.

5. Observar que aparece una pregunta que tendr que responder con S o NO.

Segn la respuesta que escoja aparecer otro mensaje distinto.

6. Analicemos el cdigo lnea a lnea:

int resp; Esta instruccin crea una variable resp (respuesta) que es donde almacenaremos la respuesta elegida por el usuario. Observa: esta variable debe ser siempre entera. resp=JOptionPane.showConfirmDialog(null, "Estas ah?", "Pregunta", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);

Esta instruccin es la que muestra el cuadro de dilogo con la pregunta. En este caso se usa un mtodo llamado showConfirmDialog. Los parmetros se han puesto uno debajo del otro para mejorar la legibilidad. Los parmetros son los siguientes: Primer parmetro: siempre tendr el valor null. Segundo parmetro: es la pregunta. En el ejemplo Ests ah? Tercer parmetro: es el ttulo del cuadro de dilogo. En el ejemplo Pregunta Cuarto parmetro: es el tipo de botones que se quiere mostrar. En el ejemplo se mostrarn los botones S y NO (luego se proporciona un listado de posibilidades para este parmetro). Quinto parmetro: es el tipo de icono que se quiere mostrar.

resp=JOptionPane.showConfirmDialog(null, "Estas ah?", "Pregunta", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);

Es importante que observe como esta instruccin se iguala a la variable resp que habamos creado antes. Esto es necesario para que la respuesta dada por el usuario se almacene en la variable. resp = JOptionPane.showConfirmDialog(...)

Botones a Mostrar El cuarto parmetro permite indicar los botones a mostrar. Existen las siguientes posibilidades: JOptionPane.YES_NO_OPTION - Botones S y NO - Botones Aceptar y Cancelar - Botones SI, NO, Cancelar

JOptionPane.OK_CANCEL_OPTION JOptionPane.YES_NO_CANCEL_OPTION

if (resp==JOptionPane.YES_OPTION) { JOptionPane.showMessageDialog(null,"Hola tu"); } else { JOptionPane.showMessageDialog(null,"Soy un ordenador hablando solo"); }

La ltima parte del cdigo es un if. En l se comprueba la respuesta proporcionada por el usuario y segn esta se muestra un mensaje u otro. La parte ms interesante de este cdigo es la comparacin: if (resp==JOptionPane.YES_OPTION) { Aqu se indica que se la respuesta fue SI (o dicho de otra manera, si se puls el botn SI), entonces que se ejecute la instruccin correspondiente.

Posibilidades de respuesta Para saber la respuesta elegida por el usuario (el botn pulsado) tenemos las siguientes variantes: JOptionPane.YES_OPTION botn SI JOptionPane.NO_OPTION botn NO JOptionPane.OK_OPTION botn Aceptar JOptionPane.CANCEL_OPTION botn Cancelar

7. Como prctica programe el botn Otra Pregunta de forma similar, solo que la pregunta que se muestre sea contestada con las posibilidades Aceptar / Cancelar.

CONCLUSIONES

Objeto JOptionPane El objeto JOptionPane permite mostrar tres tipos de cuadros de dilogo: o Cuadros de mensaje. Son cuadros que muestran un mensaje simplemente. Para ello se usa el mtodo showMessageDialog o Cuadros de entrada Son cuadros que permiten al usuario escribir un dato. Para ello se usa el mtodo showInputDialog o Cuadros de confirmacin Son cuadros que realizan una pregunta al usuario y el usuario debe contestarla pulsando un botn. Para ello se usa el mtodo showConfirmDialog.

Sintaxis de los cuadros de mensaje JOptionPane.showMessageDialog(null, Mensaje, Ttulo del cuadro, Tipo de icono); Sintaxis reducida: JOptionPane.showMessageDialog(null,Mensaje);

Sintaxis de los cuadros de entrada variabletexto = JOptionPane.showInputDialog(null, Peticin de datos, Ttulo del cuadro, Tipo de icono);

La variable variabletexto recoger lo que el usuario introduzca. Debe ser una variable de texto.

Sintaxis de los cuadros de confirmacin variablerespuesta = JOptionPane.showConfirmDialog(null, Pregunta, Ttulo del cuadro, Tipo de botones, Tipo de icono);

La variable variablerespuesta recoger la respuesta dada por el usuario. Esta variable debe ser entera.

EJERCICIO GUIADO. JAVA: INSTRUCCIONES REPETITIVAS EN JAVA

INSTRUCCIONES REPETITIVAS 1. Una instruccin repetitiva es una instruccin que se repite un cierto nmero de veces. 2. Las instrucciones repetitivas suelen ser tres: Mientras (while), Hacer Mientras (do ... while) y Para (for) 3. La sintaxis para las instrucciones repetitivas en Java coincide con la sintaxis de las instrucciones repetitivas de otros lenguajes tales como el C o el PHP. 4. A continuacin se especifica la sintaxis de las tres instrucciones repetitivas:

INSTRUCCIN MIENTRAS (while). Ejecuta un trozo de cdigo mientras se cumpla una condicin. Sintaxis: while (condicin) { cdigo } El cdigo encerrado entre las llaves se ejecutar una y otra vez mientras se cumpla la condicin.

INSTRUCCIN HACER MIENTRAS (do...while). Ejecuta un trozo de cdigo mientras se cumpla una condicin. Sintaxis: do { cdigo } while(condicin);

El cdigo encerrado entre las llaves se ejecutar una y otra vez mientras se cumpla la condicin (es similar a la instruccin mientras).

INSTRUCCIN PARA Permite ejecutar un trozo de cdigo un nmero determinado de veces. El nmero de veces que se ejecuta el cdigo depende de una variable contadora que va cambiando desde un valor inicial hasta llegar a un valor final.

for (inicializacin; condicin repeticin; incremento) { cdigo }

En la inicializacin, a la variable contadora se le asigna un valor inicial. Por ejemplo: i=0

La condicin de repeticin es una condicin que debe cumplirse para que el cdigo se ejecute una vez ms. Esta condicin har referencia a la variable contadora. Por ejemplo: i<10 (El cdigo se ejecutar mientras i sea menor que 10)

El incremento indica la forma en que variar la variable contadora. Por ejemplo: i=i+1 (La variable i se incrementa en 1 en cada vuelta)

En el caso de querer incrementar la variable contadora en uno se puede usar tambin lo siguiente: i++

Ejemplo de instruccin for:

for (i=0; i<10; i++) { cdigo } En este ejemplo la variable i empieza en cero y se incrementa de uno en uno. El bucle se repite mientras i no haya alcanzado el valor 10 (es decir, mientras i sea menor que 10) As pues, i toma los valores desde el 0 hasta el 9. Por tanto el cdigo se ejecuta 10 veces. EJEMPLO DE PROYECTO CON INSTRUCCIONES REPETITIVAS 1. A continuacin se realizar un ejemplo de proyecto en Java que incluya alguna instruccin repetitiva. 2. Realiza un nuevo proyecto. 3. Aade en el formulario los siguientes elementos:

Cuadro de texto llamado txtFrase

Cuadro de texto llamado txtVeces JTextArea llamado txtCastigo (ver explicacin abajo)

Botn llamado txtHacerCastigo

Botn llamado txtLimpiar

4. En el formulario anterior se ha aadido un JTextArea. Un JTextArea es una especie de cuadro de texto que puede contener varias lneas de texto.

5. Al aadir un JTextArea se aade sin que te des cuenta otro objeto del tipo JScrollPane. Un JScrollPane es un panel de desplazamiento. Bsicamente es un objeto que permite asignar barras de desplazamiento a otro objeto. El JScrollPane contiene al JTextArea. Esto lo puedes observar en la zona del Inspector:

El objeto JScrollPane se encargar de asignar barras de desplazamiento al JTextArea si este contuviera mucho texto.

6. A la hora de asignar el nombre al JTextArea tenga cuidado, no le vaya a asignar el nombre al JScrollPane sin querer. Puede asignar el nombre desde el mismo Inspector:

7. El nombre del JTextArea ser txtCastigo. Al JScrollPane no tiene que asignarle ningn nombre.

8. El objetivo del ejemplo es el siguiente. Se pretende que el usuario escriba en el cuadro de texto de la frase una frase cualquiera, y en el cuadro de texto de las veces el nmero de veces que quiere repetir dicha frase. Al pulsar el botn Hacer Castigo, en el textarea aparecer la frase repetida tantas veces como indic el usuario.

Se escribe una frase... Se escribe las veces...

Al pulsar Hacer Castigo Aparece las frase repetidas veces.

9. Acceda al evento actionPerformed del botn Hacer Castigo y programe all lo siguiente:

10. Explicacin del cdigo: int i, veces;

Esto crea dos variables enteras. String txtve, frase; Esto crea dos variables de texto. frase = txtFrase.getText(); Esta instruccin recoge el contenido del cuadro de texto de la frase y lo almacena en la variable frase. txtve = txtVeces.getText(); veces = Integer.parseInt(txtve); Estas dos instrucciones recogen el valor que hay en el cuadro de texto txtVeces y lo convierten a nmero. La primera instruccin recoge el contenido en una variable de texto llamada txtve. La segunda instruccin convierte la variable txtve en nmero, y lo guarda en la variable veces.

for (i=0;i<veces;i++) { txtCastigo.append(frase+\n); }

Aqu tenemos un ejemplo de uso de la instruccin repetitiva for. Este for se repite el nmero de veces indicado por la variable veces. Es decir, si la variable veces contiene un 3, el for se repetir 3 veces. La instruccin que se repite es la contenida en el for: txtCastigo.append(frase+\n); Lo que hace esta instruccin es escribir la frase dentro del cuadro de texto txtCastigo. Esta instruccin se repetir tantas veces como indique el for, por tanto se escribirn varias frases en el rea de texto. El \n que se concatena al final produce un salto de lnea, para evitar que las distintas frases aparezcan unidas una detrs de otra.

11. Ejecute el programa y compruebe el funcionamiento.

EJERCICIO 1. Como ejercicio programe el botn Limpiar de forma que se vacie el contenido de los cuadros de texto txtFrase y txtVeces y el textarea txtCastigo.

CONCLUSIN

Instrucciones alternativas En java existen las mismas instrucciones alternativas que en lenguajes tales como PHP y C. Y su sintaxis es la misma. Las instrucciones repetitivas son tres: o o o Mientras (while) Hacer Mientras (do while) Para (for)

reas de texto. JTextArea Las reas de texto son cuadros de textos especiales que permiten escribir en ellos ms de una lnea de texto. Los JTextAreas aparecen contenidos en objetos llamados JScrollPane (paneles de desplazamiento) o Los paneles de desplazamiento asignan barras de desplazamiento al objeto que contiene cuando sea necesario.

El funcionamiento de un JTextArea es prcticamente igual al de un cuadro de texto. Los JTextArea poseen un mtodo llamado append que permite aadir texto al rea de texto. Recuerde que el carcter \n significa salto de lnea

EJERCICIO GUIADO. JAVA: EXCEPCIONES. CAPTURA DE ERRORES DE EJECUCIN

ERRORES DE EJECUCIN
1. Un error de ejecucin es un error que se produce mientras el programa se est ejecutando. 2. Normalmente, los errores de ejecucin son debidos al usuario, el cual muchas veces introduce valores incorrectos en los cuadros de textos y dems componentes. 3. Estos errores pueden producir un mal funcionamiento del programa y son necesario capturarlos y avisar al usuario de que se han producido. 4. En Java a estos errores se les denomina Excepciones.

EJEMPLO DE PROYECTO CON ERRORES DE EJECUCIN 1. Para entender bien los errores de ejecucin se crear un programa que sea propenso a sufrir errores de ejecucin. 2. Cree un nuevo proyecto y en l aada el siguiente formulario:

Los cuadros de textos se llaman respectivamente txtNumero1 y txtNumero2. El botn Dividir se llama btnDividir. La etiqueta de resultado (la que tiene el borde) se llama etiResultado.

3. Se programar el botn dividir de forma que se calcule la divisin del nmero 1 entre el nmero 2. Para ello programe el siguiente cdigo en el botn Dividir:

4. Se comenta un poco el cdigo: Primeramente se crean tres variables reales (double) y dos variables auxiliares de texto. Despus se recoge el contenido de los cuadros de texto txtNumero1 y txtNumero2 en las variables de texto. A continuacin se convierten dichas variables de texto en nmero y se almacenan en las variables n1 y n2. Luego se realiza la divisin y se almacena en d. A continuacin se redondea el resultado. Finalmente se introduce el resultado en la etiqueta de resultado.

5. Ejecute el programa y compruebe su funcionamiento. Observe que en principio el programa funciona correctamente cuando se introducen dos nmeros en los cuadros de texto.

6. Sin embargo, si introduce una palabra en algunos de los cuadros de texto se produce un error interno (una excepcin) ya que no se puede convertir una palabra en un nmero y hacer la divisin. Este error es imperceptible, pero puede comprobar que se produce si ejecuta el programa y observa la parte inferior del NetBeans. All podr ver que aparece informacin sobre el error:

No se puede dividir 3 entre Hola. Se produce un error. Se puede ver informacin sobre el error en la parte inferior de la ventana de NetBeans

7. Se dice entonces que el cdigo del botn Dividir es un cdigo peligroso, ya que puede producir errores de ejecucin. Resulta por tanto muy interesante que estos errores puedan ser capturados y se muestre al usuario informacin sobre el error (que aparezca al menos un mensaje indicando que ha aparecido un error de datos o similar)

INSTRUCCIN TRY ... CATCH

1. La instruccin try ... catch sirve para detectar errores en cdigos peligrosos. Gracias a esta instruccin se pueden mostrar mensajes al usuario informando del error. La estructura del try ... catch es la siguiente:

try { ... cdigo peligroso ... } catch(Exception e) { ... mensaje de error ... }

As pues, la parte try rodea al cdigo que puede provocar errores. La parte catch rodea al cdigo que muestra el mensaje de error. Si usamos el try catch, cada vez que se produzca un error en el cdigo peligroso se ejecutarn las instrucciones del catch.

try { ... cdigo peligroso ... } catch(Exception e) { ... mensaje de error ... }

Se produce un error en el cdigo peligroso... As que se ejecutan las instrucciones del catch

2. Siguiendo esta idea mejoraremos el cdigo del botn Dividir del proyecto que estamos haciendo. Aada un try y un catch de forma que el cdigo quede as:

Observaciones: Fjate como el try rodea al cdigo peligroso (las declaraciones de variables no necesitan estar dentro del try) Observa el cdigo que hemos aadido en el catch. Es un cuadro de dilogo emergente que muestra un mensaje de error.

3. Ahora ejecuta el programa e introduce valores no vlidos en los cuadros de texto. Observa como el error es capturado y se ejecuta el catch, mostrndose el mensaje de error:

Se produce el error... Se ejecuta el catch con lo que se muestra el mensaje... Ahora el usuario es informado del error. El botn Dividir est mejor programado ahora.

4. Si observas la lnea del catch, vers que tiene la siguiente sintaxis: } catch (Exception e) {

La parte Exception e hace referencia al error producido. e es una variable que recoge el error que se ha producido y puede llamarse como quiera (en estas hojas se usar e o bien err) La variable e es un objeto y se le puede dar rdenes como a cualquier otro. Por ejemplo, se le puede decir que nos de informacin sobre el error producido a travs de un mtodo suyo llamado getMessage. Veamos un ejemplo prctico.

5. Modifique el cdigo del catch para que quede de la siguiente forma:

(esto concatena el tipo de error producido al mensaje)

6. Ejecute ahora el programa y compruebe el resultado. Observar que aparece el mensaje de error y adems aparece la descripcin tcnica del error. La pega es que esta descripcin del error aparece en ingls, por lo que quizs no le resulte del todo interesante esta ltima modificacin.

Descripcin tcnica del error producida por e.getMessage

CUANDO USAR TRY CATCH

1. Particularmente, hay que usar try catch en dos casos: a. Cuando tengas un cdigo que sabes que puede producir errores. b. Cuando java te obligue (veremos ejemplos en otras hojas)

2. Pero en general, para evitar cualquier tipo de problema, es interesante usar try catch en cualquier evento que programemos. Si nos acostumbramos a usar un try catch por cada cdigo de evento, capturaremos cualquier error que se produzca en el programa y por tanto el programa mejorar.

CONCLUSIONES

Errores de Ejecucin (Excepciones) Un error de ejecucin (excepcin) es un error inesperado que se produce mientras el programa se ejecuta. Normalmente es producido por una accin indebida del usuario. Las excepciones, cuando se producen, no se muestran explcitamente durante la ejecucin del programa, pero pueden producir un funcionamiento inesperado de este, por lo que es necesario capturarlas y mostrar alguna informacin al usuario. La captura de excepciones se realiza con la estructura try ... catch

try ... catch La estructura try catch est dividida en dos partes: o Parte try que rodea al cdigo peligroso. o Parte catch que contiene las lneas a ejecutar en caso de error (normalmente se muestra un mensaje)

Sintaxis del try...catch

try { ... cdigo peligroso ... } catch(Exception e) { ... mensaje de error ... }

La variable e contiene el error producido y puede tener cualquier nombre.

EJERCICIO GUIADO. JAVA: CADENAS

CADENAS
1. Una cadena es bsicamente un texto. 2. Las cadenas en Java son objetos como cualquier otro, y tienen mtodos que pueden ser usados para realizar distintas operaciones sobre el texto. 3. En esta hoja se practicar con varios de esos mtodos.

PROYECTO EJEMPLO 1. Cree un proyecto en NetBeans que tenga un formulario con estos elementos:

El cuadro de texto superior se llama txtFrase. Las etiquetas con bordes se llaman respectivamente txtMayusculas y txtMinusculas. El botn se llama btnAnalizar.

2. Programe lo siguiente en el botn analizar: String frase; frase = txtFrase.getText(); etiMayusculas.setText(frase.toUpperCase()); etiMinusculas.setText(frase.toLowerCase());

3. Ejecute el programa y compruebe su funcionamiento. Observar como al pulsar el botn Analizar la frase escrita en el cuadro de texto se presenta en maysculas y minsculas en ambas etiquetas. 4. Analicemos el cdigo: String frase; Esta instruccin crea una variable de tipo texto (cadena). Por tanto, se puede considerar que la variable frase es un objeto como cualquier otro y tiene por tanto una serie de mtodos que pueden ser aplicados a dicha variable. frase = txtFrase.getText(); Aqu recogemos el contenido del cuadro de texto en la variable frase. etiMayusculas.setText(frase.toUpperCase()); Esta instruccin sita un texto dentro de la etiqueta etiMayusculas: etiMayusculas.setText(...); Si observa el texto que se introduce en la etiqueta ver lo siguiente: frase.toUpperCase() Este trozo de cdigo consiste en la aplicacin del mtodo toUpperCase() sobre el objeto frase. Este mtodo da la orden al objeto frase de que se ponga en maysculas. As que bsicamente estamos introduciendo en la etiqueta el texto de la frase en maysculas.

etiMinusculas.setText(frase.toLowerCase()); En esta instruccin se hace algo parecido, solo que aplicamos el mtodo toLowerCase() a la frase. En este caso, este mtodo pone la frase en minsculas.

Los mtodos toUpperCase y toLowerCase son mtodos aplicables a los objetos de cadena. A continuacin se estudiarn otros mtodos.

5. Aada al formulario otra etiqueta llamada etiCaracteres. 6. Acceda al cdigo del botn Analizar y aada la siguiente lnea de cdigo al final:
etiCaracteres.setText("La frase tiene "+frase.length()+" caracteres");

7. Compruebe el funcionamiento del programa. Si introduce una frase y pulsa el botn Analizar, en la nueva etiqueta aparecer el nmero de caracteres que tiene la frase introducida:

8. Si observa el cdigo, ver como se usa un mtodo llamado length(), el cual devuelve un entero correspondiente con el nmero de caracteres del objeto de cadena. En el ejemplo, del objeto frase: frase.length()

9. Aada una etiqueta llamada etiSustitucion. 10. Aada al botn Analizar la siguiente lnea de cdigo: etiSustitucion.setText(frase.replaceAll("a","o"));

11. Compruebe la ejecucin del programa. Esta lnea sustituye las a por o en la frase:

12. Si observa la lnea de cdigo ver que se est usando un mtodo llamado replaceAll el cual sustituye una cadena por otra dentro del objeto de cadena. En el ejemplo se est reemplazando a por o. frase.replaceAll("a","o")

13. Aada dos etiquetas ms llamadas respectivamente etiSubcadena1, y etiSubcadena2. 14. Luego aada las siguientes lneas de cdigo al botn Analizar. etiSubcadena1.setText(frase.substring(22)); etiSubcadena2.setText(frase.substring(7,12));

15. Ejecute el programa y escriba la frase No por mucho madrugar amanece ms temprano. Luego pulse el botn analizar. Observar que se extraen dos subcadenas de la frase principal y se muestran en las nuevas etiquetas:

16. Observe las dos lneas de cdigo que aadi: etiSubcadena1.setText(frase.substring(22)); etiSubcadena2.setText(frase.substring(7,12));

17. La primera usa el mtodo substring, el cual permite extraer una subcadena de la cadena global. Este mtodo est siendo usado con un solo parmetro: el valor 22. Esto significa que se extraer desde el carcter 22 hasta el final. (Tenga en cuenta que los caracteres empiezan a contarse desde 0) As pues en el ejemplo se mostrar amanece ms temprano

18. La segunda lnea usa el mtodo substring pero con dos parmetros: el valor 7 y el valor 12. Esto significa que se extraer desde el carcter 7 al carcter anterior al 12. As pues en el ejemplo se extraer la palabra mucho.

19. Estas lneas pueden producir excepciones, en el caso de que se quiera extraer una subcadena desde una posicin que no exista. Esto podra producir que el programa se corte. As pues se recomienda el uso de try ... catch con este cdigo:

try { etiSubcadena1.setText(frase.substring(22)); etiSubcadena2.setText(frase.substring(7,12)); } catch(Exception e) { JOptionPane.showMessageDialog(null,"Error de extraccin de subcadena"); }

20. Aada una nueva etiqueta. Llmela etiPosicion. 21. Aada la siguiente lnea de cdigo al botn Analizar:

etiPosicion.setText("Posicin de la a: "+frase.indexOf("a"));

22. Ejecute el programa y compruebe el funcionamiento de esta lnea de cdigo. Observar como se muestra la posicin de la primera a encontrada en la frase:

23. El mtodo indexOf permite encontrar la posicin donde se encuentra por primera vez la cadena indicada. En el ejemplo, la cadena que se busca es la a: frase.indexOf(a); Como informacin adicional, se comenta que existe otra forma de usar indexOf, aadiendo un nuevo parmetro, el cual indica desde que posicin se buscar la subcadena: frase.indexOf(subcadena,pos); Por ejemplo: frase.indexOf(hola,10); Esta instruccin devuelve la posicin donde primero se encuentre la subcadena hola en la frase a partir de la posicin 10.

24. Aada dos nuevas etiquetas al formulario, que se llamen respectivamente etiEmpieza y etiTermina. 25. Aada el siguiente cdigo al botn Analizar:

if (frase.startsWith("a")) { etiEmpieza.setText("La frase empieza por a"); } else { etiEmpieza.setText("La frase no empieza por a"); } if (frase.endsWith("a")) { etiTermina.setText("La frase termina en a"); } else { etiTermina.setText("La frase no termina en a"); }

26. Ejecute el programa y compruebe el funcionamiento de este cdigo. Este cdigo indica si la frase introducida empieza o no por a. Igualmente indica si termina o no por a.

27. El cdigo aadido est formado por dos Si. Estudiemos el primero:

if (frase.startsWith("a")) { etiEmpieza.setText("La frase empieza por a"); } else { etiEmpieza.setText("La frase no empieza por a"); }

En este cdigo se usa un mtodo llamado startsWith que significa empieza con. Este mtodo tiene como parmetro una cadena y devuelve verdadero o falso segn si la cadena empieza por dicha cadena. En el ejemplo, si la frase empieza por a entonces se muestra un mensaje indicndolo. En caso contrario se indica que la frase no empieza por a.

28. El segundo SI es muy similar al primero, solo que usa el mtodo endsWith, que significa termina por.

29. Aada una nueva etiqueta. Llmela etiIguales. 30. Aada el siguiente cdigo al botn Analizar: if (frase.equals("Hola")) { etiIguales.setText("Hola a ti tambien"); } else { etiIguales.setText("Lalalala"); }

31. Este cdigo muestra en la etiqueta la frase Hola a ti tambin en el caso de que la frase escrita sea Hola. En caso contrario se muestra Lalala. Compruebe el funcionamiento del programa:

Si escribes Hola... ...aparece la frase Hola a ti tambin

Si se escribe algo distinto de Hola... ...aparece la frase Lalalala

32. Si observamos el cdigo veremos el uso de un mtodo muy importante: equals. Este evento comprueba si el objeto de cadena es igual a otra cadena. En el ejemplo, si la frase es igual a Hola. if (frase.equals("Hola")) { etiIguales.setText("Hola a ti tambien"); } else { etiIguales.setText("Lalalala"); }

Este mtodo devuelve verdadero o falso, as que se usa en las condiciones para comprobar si una cadena es igual a otra.

33. Debe tener en cuenta que el mtodo equals distingue entre maysculas y minsculas. Esto significa que no es lo mismo Hola que hola. En el caso de que quiera que las maysculas y minsculas no sean tenidas en cuenta, usar el mtodo: equalsIgnoreCase(cadenaacomparar) Pruebe este mtodo en el programa para que no se distinga entre Hola y hola.

34. Se pueden usar varios mtodos de cadenas en una instruccin para realizar distintas modificaciones sobre una cadena. Veamos esta idea con un ejemplo: frase Es la frase tal cual fue escrita... frase.toUpperCase() Es la frase en maysculas, ya que se ha aplicado el mtodo toUpperCase frase.toUpperCase().replaceAll(a,e) Es la frase en maysculas donde se ha sustituido las aes por ees. En este caso se han aplicado dos mtodos: toUpperCase y replaceAll. frase.toUpperCase().replaceAll(a,e).substring(4) Es la frase en maysculas, a la que se le ha sustituido aes por ees y de la que se ha extrado desde la posicin cuarta hasta el final. frase.toUpperCase().replaceAll(a,e).substring(4).otrometododecadena Y en este ejemplo general, despus de poner la frase en maysculas, sustituir las aes por ees y extraer desde la posicin cuarta al final, se aplica a la cadena resultante el mtodo otrometododecadena. Etc...

35. Para probar lo anterior, aada una nueva etiqueta llamada etiMetodos. 36. Aada en el botn Analizar la siguiente lnea de cdigo:
etiMetodos.setText(frase.replaceAll("a","i").replaceAll("e","i").toUpperCase());

Esta instruccin aplica varios mtodos a la frase. En concreto hace lo siguiente: a. Reemplaza en la frase original las aes por ies. b. A la frase resultante le reemplaza las ees por ies. c. Y la frase resultante se pone en maysculas. La frase resultante se muestra en la etiqueta etiMetodos.

37. Ejecute el programa y prubelo con la cadena: La piedra del mechero. Observe el resultado.

CONCLUSIONES

CADENAS Una cadena es un texto. Las variables de cadenas se declaran de la siguiente forma: String variable; Las cadenas son objetos y tienen multitud de mtodos que permiten el manejo de texto (poner en maysculas, minsculas, extraer subcadena, etc..) Se pueden aplicar varios mtodos a la misma cadena de la siguiente forma: cadena.Mtodo1().Mtodo2().Mtodo3().etc...

EJERCICIO GUIADO. JAVA: JFRAMES. FORMULARIOS

JFRAME
1. Un objeto JFrame es un formulario. Es decir, la base de una ventana. El objeto sobre el que se aaden cuadros de texto, botones, etc... 2. Al crear un proyecto nuevo, lo primero que se hace es aadir un objeto JFrame: el formulario principal del programa. 3. En esta hoja se vern distintos mtodos de este objeto y algunas posibilidades de uso.

EJEMPLO DE MANEJO DE FORMULARIO 1. Cree un proyecto en NetBeans que tenga un formulario con estos elementos:

btnTitulo txtTitulo

btnMaximizar btnMinimizar btnRestaurar txtPosX txtPosY btnMover btnVerde btnAzul btnRojo

btnEstiloJava btnEstiloWindows btnEstiloMotif btnEstiloMac

2. Empiece programando el siguiente cdigo en el botn Titulo: String titulo; titulo = txtTitulo.getText(); this.setTitle(titulo);

Este cdigo permite cambiar el ttulo del formulario. Concretamente asigna el ttulo que se haya escrito en el cuadro de texto ttulo. Ejecute el programa para comprobarlo:

Escribes un ttulo y al pulsar el botn se cambia el ttulo de la ventana.

3. Explicacin del cdigo: String titulo; titulo = txtTitulo.getText(); Se crea una variable de texto llamada titulo y luego se recoge el texto del cuadro de texto txtTitulo en dicha variable. this.setTitle(titulo); Esta lnea es interesante. En primer lugar observe la palabra this. Siempre que encuentre esta palabra se referir al objeto global en el que est programando. En nuestro caso, this se refiere al formulario. As pues, usaremos this para referirnos al formulario donde estamos. Por otro lado estamos usando el mtodo setTitle que permite cambiar el ttulo del formulario. El ttulo que se pone viene indicado por la variable titulo.

4. Ahora aada al botn Maximizar el siguiente cdigo: this.setExtendedState(JFrame.MAXIMIZED_BOTH); (Nota, NetBeans le pedir que agregue la librera -el import- para JFrame)

5. Esta instruccin hace que se maximice la ventana. Prubelo ejecutando el programa. 6. Si observa la instruccin, tenemos un mtodo llamado setExtendedState que es aplicado al formulario (this) Este mtodo puede recibir distintos valores segn lo que se quiera hacer con la ventana (maximizarla, minimizarla o restaurarla) Aqu tiene los tres posibles valores: JFrame.MAXIMIZED_BOTH - maximiza la ventana. JFrame.ICONIFIED - minimiza la ventana. JFrame.NORMAL - restaura la ventana.

7. Teniendo en cuenta lo anterior, programe usted solo los botones Minimizar y Restaurar y compruebe el programa.

8. Ahora programe el botn Mover con el siguiente cdigo: int x,y; String px, py; px = txtPosX.getText(); py = txtPosY.getText(); x = Integer.parseInt(px); y = Integer.parseInt(py); this.setLocation(x,y);

9. Este cdigo permite que el usuario introduzca una posicin x,y y al pulsar el botn Mover el formulario cambiar de sitio en la pantalla. Comprubelo.

Se introducen las coordenadas y se pulsa el botn Mover. El formulario se colocar en dichas coordenadas.

10. Estudiemos el cdigo: int x,y; String px, py; px = txtPosX.getText(); py = txtPosY.getText(); x = Integer.parseInt(px); y = Integer.parseInt(py); Estas lneas bsicamente recogen las coordenadas introducidas en los cuadros de texto txtPosX y txtPosY en dos variables numricas llamadas x e y. Se usan dos variables auxiliares de tipo texto px y py para recoger el contenido de los cuadros de textos para posteriormente convertirlos a nmero. this.setLocation(x,y); Y esta instruccin es la que cambia de posicin la ventana. Se ejecuta el mtodo setLocation del formulario (this). Este mtodo recibe como parmetro la posicin x e y.

11. Ejercicio. Para cambiar el tamao de un formulario se usa un mtodo llamado setSize. Aada dos cuadros de textos (uno para el ancho y otro para el alto) y un botn cambiar tamao. El usuario escribir un ancho y un alto y al pulsar este botn el tamao de la ventana cambiar.

12. Sigamos. Ahora programe el botn Verde de la siguiente forma: this.getContentPane().setBackground(Color.GREEN);

13. Observe el funcionamiento del programa. Ver como el formulario cambia al color verde al pulsar este botn. 14. Esta lnea de cdigo necesita de una explicacin adicional: Todo formulario (JFrame) tiene sobre l lo que se denomina un panel de contenidos. Este panel no es perceptible, pero podramos representarlo as:

Objeto JFrame (formulario)

Panel de Contenidos

15. Debes observar que el panel de contenidos est sobre el formulario. Esto quiere decir que si cambiramos el color del formulario no notaramos nada ya que el panel de contenido tapa al formulario. 16. Por lo tanto, para cambiar el color de la ventana y que se note, en realidad, se lo tendr que cambiar al panel de contenidos. 17. La forma de acceder al panel de contenidos es la siguiente: this.getContentPane() 18. Por tanto, si quiere cambiar el color del panel de contenidos, tendr que aplicar el mtodo setBackground a lo anterior: this.getContentPane().setBackground(Color.GREEN);

19. Programe ahora el botn Estilo Windows de la siguiente forma:


try { UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); SwingUtilities.updateComponentTreeUI(this); }catch(Exception e) { JOptionPane.showMessageDialog(null, "Error al presentar el estilo", "Error", JOptionPane.ERROR_MESSAGE); }

20. Este cdigo cambia el aspecto de la ventana y le aplica el aspecto de Windows. Prubelo:

21. Analicemos el cdigo. Las dos lneas ms importantes del cdigo son las siguientes:
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); SwingUtilities.updateComponentTreeUI(this);

En la primera lnea, un objeto llamado UIManager ejecuta un mtodo llamado setLookAndFeel. Este mtodo aplica una apariencia que viene definida por la siguiente cadena de texto:
"com.sun.java.swing.plaf.windows.WindowsLookAndFeel"

Segn la cadena que uses, la apariencia que se aplique ser una u otra. En este caso, la cadena anterior es la correspondiente a la apariencia de Windows. Despus se indicarn otras cadenas que pueden ser usadas.

En la segunda lnea, un objeto llamado SwingUtilities ejecuta el mtodo llamado updateComponentTreeUI, aplicado al formulario (this). Esta lnea bsicamente lo que hace es actualizar la ventana para que se aplique la nueva apariencia. Al escribir estas dos lneas NetBeans le pedir el import para los objetos UIManager y SwingUtilities.

22. El cdigo anterior es enrevesado pero siempre se usa igual. Lo nico que hay que cambiar es la cadena de texto que indica la apariencia. Puede usar las siguientes cadenas de texto de apariencia:
"com.sun.java.swing.plaf.windows.WindowsLookAndFeel"

Esta cadena define el estilo de ventanas de Windows.


"javax.swing.plaf.metal.MetalLookAndFeel"

Esta cadena define el estilo de ventanas de Java


"com.sun.java.swing.plaf.motif.MotifLookAndFeel"

Esta cadena define el estilo Motif


"com.sun.java.swing.plaf.mac.MacLookAndFeel"

Esta cadena define el estilo de ventanas de Mac

23. Este cdigo es considerado por NetBeans como peligroso, ya que puede producir errores. Esto es debido a que un sistema operativo puede que no admita el estilo de ventanas de otro sistema operativo. As pues NetBeans obliga a que se use un try...catch para capturar posibles excepciones. Y, de hecho, si no se usa un try...catch, el NetBeans mostrar un error.

24. Esta es la razn por la que se rodea el cdigo con un try...catch. En la parte del catch simplemente mostramos un mensaje de error usando un JOptionPane (tendr que incluir el import para este objeto)

25. Con la informacin proporcionada en los puntos anteriores, programe usted solo los botones Estilo Java, Estilo Motif y Estilo Mac. Compruebe el resultado.

EVENTOS INTERESANTES DE FORMULARIOS 1. Los formularios como los dems elementos de una ventana posee eventos que pueden ser programados. Se nombrarn cuatro eventos: windowOpened sucede cuando la ventana se abre por primera vez. windowClosing sucede cuando la ventana se cierra. windowActivated sucede cuando la ventana se activa. windowDeactivated sucede cuando la ventana se desactiva. 2. El evento windowOpened puede ser usado como zona donde programar una presentacin o una bienvenida. Pruebe a programar en el evento windowOpened del formulario del proyecto anterior lo siguiente: JOptionPane.showMessageDialog(null,"Bienvenido"); Este cdigo muestra un mensaje de bienvenida. Este mensaje aparecer al empezar el programa (cuando la ventana principal se abra) Pruebe el programa.

3. Los formularios tienen una propiedad llamada defaultCloseOperation que define lo que tiene que pasar cuando el usuario pulsa el botn cerrar de la ventana. Hay varias posibilidades: EXIT_ON_CLOSE - hace que el programa termine. HIDE - el formulario se oculta. DISPOSE - el formulario se cierra (pero el programa no termina, a no ser que este sea el nico formulario abierto del programa). DO_NOTHING - No hace nada (el formulario no se cierra).

4. Asigne el valor DO_NOTHING al formulario y pruebe a ejecutar el programa. Observar que no podr cerrar el formulario al pulsar el botn cerrar. Para cerrar el formulario active la opcin Construir Detener generacin/ejecucin en el NetBeans:

5. De qu sirve asignar el valor DO_NOTHING a un formulario, aparte de ser ideal para gastar bromas? Veamos: Al asignar el valor DO_NOTHING nos vemos forzados a programar el cierre del formulario desde cdigo. Esto nos permite controlar el cierre. Por ejemplo, podemos preguntar al usuario si quiere cerrar realmente el formulario, y segn su respuesta cerrarlo o no. 6. Al pulsarse el botn cerrar del formulario se ejecuta el evento windowClosing, as que programe en l lo siguiente: int resp; resp=JOptionPane.showConfirmDialog(null, "Desea Salir?", "Salida", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); if (resp==JOptionPane.YES_OPTION) { this.dispose(); }

7. Este cdigo muestra un mensaje de confirmacin, preguntando al usuario si quiere salir realmente del programa. En el caso de que el usuario conteste que s, se ejecutar la siguiente lnea: this.dispose(); Esta lnea ejecuta el mtodo dispose del formulario (this). Este mtodo cierra el formulario desde cdigo.

8. En caso de que el usuario pulsara No, no se ejecuta el mtodo dispose, y por tanto no se cierra el formulario. El cdigo anterior es el cdigo tpico para pedir confirmacin de salida del programa.

CONCLUSIONES

JFRAME Un objeto JFrame es un formulario. Elemento base para crear una ventana. Cuando programa en un formulario, puede usar la palabra this para referirse a l. El formulario, como cualquier otro objeto, posee diversos mtodos que permiten moverlo, maximizarlo, minimizarlo, etc... Tenga en cuenta que los formularios poseen un panel de contenidos cubrindolos. Esto har que algunas de las propiedades aplicadas al formulario no puedan ser observadas, como por ejemplo el cambio de color. En estos casos hay que cambiar la propiedad al panel de contenidos. El acceso al panel de contenidos viene especificado por: this.getContentPane()

Estilo de ventanas. Java tiene su propio estilo de ventanas, pero puede, si quiere, cambiarlo y asignarle el estilo correspondiente a un sistema operativo. Eventos. Los formularios poseen eventos que pueden ser programados. Entre los ms interesantes estn el evento windowOpened que sucede cuando la ventana se abre y windowClosing que sucede cuando el usuario pulsa el botn cerrar. La propiedad defaultCloseOperation define lo que sucede automticamente cuando se pulsa el botn cerrar de la ventana. Asigne a esta propiedad el valor DO_NOTHING solo si quiere controlar el cierre desde el evento windowClosing a travs del mtodo dispose.

You might also like