Você está na página 1de 85

PROGRAMACION JAVA NIVEL I

Objetivos
Los fundam ento s de program acin nos van a servir para desarro llar program as en
distintos lenguajes. Este curso aplica los cono cim iento s de algoritm ia y anlisis a un
lenguaje de alto nivel com o es Java, com pletando la form acin bsica y perm itiendo
introducirnos en un lenguaje.

Destinatarios
C ualqu ier persona que tenga suficientes cono cim iento s de algoritm ia. Especialm ente
dirigido a personas que hayan realizado los cursos "B ases de la program acin Nivel I y
II", pero tam bin til para program adores que quieran introducirse a Java.

Contenidos

IN TRO D U CCI N A PR O G RA M A CI N O R IEN TA D A A O B JETO S Y A JA V A

IN STA LACI N . EN TO RN O DE PR O G RA M A CI N . LA A YU D A DE JAVA.

V A R IA B LES CON JAV A . ESCRITU RA DE C DIG O .

ESTR U CTU R A S DE DECISI N Y DE REPETICI N (BU CLES) CON JAVA.

IN STRU CCIO N ES LEER Y G U A RD A R. IN TRO D U CCI N A A RCH IVO S.

C O N TA D O RES Y O TRA S H ER RA M IEN TA S CON JAVA.

PRO G RA M A CI N POR M D U LO S (M TO D O S) CON JAVA.

V ER IFICA CI N DE A LG O R ITM O S CON JAVA.

ERRO RES. G EN ERA R UN PRO G RA M A EJECU TABLE. EJERCICIO S.

Duracin
120 horas de dedicacin efectiva, incluyendo lecturas, estudio y ejercicios.

Direccin, modalidades y certificados


El curso est dirigido por W alter Sagstegui Lescano, Ingeniero

Inform tico de

aprenderapro gram ar.com . Se oferta bajo las m odalidades w eb (gratuito) o con tickets
de soporte.

Introduccin. Java, lenguaje


potente y popular. (CU00501A)
Seccin: Cursos
Categora: Curso Lenguaje de programacin Java nivel I
Fecha ltima actualizacin: 2010
Autor: Walter Sagstegui Lescano
Resumen:

Entrega n1 del curso Lenguaje de program acin Java Nivel I.

10

CONSIDERACIONES PREVIAS
En este curso emplearemos el Lenguaje de Programacin Java para aplicar los conceptos y
conocimientos de fundamentos de programacin a un lenguaje concreto. Puedes utilizar este curso
para aplicar conocimientos previos y conocer aspectos bsicos de programacin orientada a objetos,
pero no recomendaramos seguirlo si buscas un desarrollo en profundidad y metdico sobre estas
materias. No vamos a entrar en definiciones ni en consideraciones abstractas. Tampoco vamos a seguir
lo que sera un guin completo de estudio sobre el lenguaje Java. Dejaremos de lado los aspectos
estticos: el mundo de las formas de presentacin, los colores, imgenes, efectos visuales, etc. Es
atractivo y parte ms o menos importante de los programas, pero no es nuestro objetivo. Nos vamos a
centrar en los "esqueletos" de los programas: el cdigo que hace que funcionen, no el que hace que
sean bonitos.
Cabe hablar del lenguaje a utilizar en el desarrollo de programas. El conjunto de lenguajes y
versiones de lenguajes constituyen una torre de Babel, un conglomerado de difcil seguimiento e
interpretacin. Lo ms habitual es decantarse por estudiar lenguajes que adquieren popularidad y un
uso extendido por todo el mundo, como es Java. Pero incluso despus de este ejercicio hay que
enfrentarse a la evolucin del lenguaje a travs de sus diversas versiones. En Java todas las versiones
siguen los mismos estndares de datos, esto permite que un programa que hayamos hecho con una
versin antigua, pueda ser ejecutado con una versin ms nueva sin necesidad de ningn cambio.
Nuestra opinin consiste en que es preferible dejar esa carrera loca, quizs necesaria, para los
programadores profesionales y empresas, mientras que los usuarios podemos contentarnos con
programas que funcionen, aunque sean un poco "antiguos". Por tanto, respecto a qu versin de Java
usar, usa la que quieras. Si no coincide con la que hemos usado nosotros (JDK 1.6.0_18) no pasa nada.
Notars que los ejercicios aqu desarrollados no tendrn problemas incluso con la versin JDK 1.6.0_14,
que tomaremos como la versin mnima a emplear ya que las anteriores suponen algunos cambios ms
significativos. No obstante, tambin puedes usar versiones ms antiguas haciendo pequeas
adaptaciones a los programas.
Citaremos tambin que existen distintas formas de programar en Java: la ms bsica es usar el
compilador (programa que permite que el ordenador entienda las instrucciones que le demos en
lenguaje Java, ya que el ordenador no entiende directamente los lenguajes de programacin). Otras
opciones son el uso de entornos visuales como Eclipse, NetBean, etc. que se han hecho muy populares,
son gratuitos y muy tiles. Nosotros vamos a usar el compilador, tambin de distribucin gratuita,
porque pensamos que es la mejor manera de aprender Java: aprender sus fundamentos. Cuando ya
tengamos los fundamentos, podemos pasar a usar un entorno visual que nos permitir crear programas
ms atractivos y de forma ms rpida, pero tratar de usarlos directamente pensamos que no es lo ms
didctico.
En resumen, los lenguajes evolucionan de forma constante, pero detrs de los aparentes
cambios casi siempre se encuentra el mismo "fondo".
Si despus de todo, sigues dudando del lenguaje que mejor se adecua a tus necesidades, te
animamos a que profundices en Java. Vers que se trata de un lenguaje til para casi todo tipo de
problemas. Podemos citar como funcionalidades de Java varias:

1. Aplicaciones "cliente": son las que se ejecutan en un solo ordenador (por ejemplo el porttil
de tu casa) sin necesidad de conectarse a otra mquina. Pueden servirte por ejemplo para realizar
clculos.
2. Aplicaciones "cliente/servidor": son programas que necesitan conectarse a otra mquina
(por ejemplo un servidor de datos) para pedirle algn servicio que le pueda ofrecer, como podra ser el
uso de una base de datos.
3. Podemos hablar tambin de "aplicaciones web" , que son programas Java que se ejecutan en
un servidor. Estas aplicaciones reciben "solicitudes" desde un ordenador y envan al navegador
(Internet Explorer, Mozilla, Opera, etc) que acta como su cliente pginas de respuesta en HTML.
stos son slo algunos ejemplos de todo el potencial que hay detrs de Java como lenguaje
para aprender y obtener muchos beneficios con su uso. Obviamente por determinados trminos
empleados (cliente, cliente/servidor, base de datos, HTML..), te dars cuenta de que el lenguaje Java
tiene mucha potencialidad, pero tambin de que su conocimiento a fondo requerira mucho tiempo.
Nosotros en este curso vamos a estudiar nicamente los aspectos ms bsicos de Java.

INTRODUCCIN A PROGRAMACIN ORIENTADA A OBJETOS


La programacin orientada a objetos (POO) se populariz en la dcada de los 90 desplazando a
la programacin estructurada tradicional, no para eliminarla o dejarla obsoleta, sino para construir
sobre ella. Su xito ha radicado en facilitar y simplificar la construccin de programas y su
mantenimiento. Esta concepcin de la programacin se ha impuesto a casi todos los niveles, lo cual no
quiere decir que no se puedan usar lenguajes que no la contemplen, y lograr con ellos resultados tiles
y eficaces. Todos los conocimientos previos que tengamos sobre algoritmia y programacin
estructurada

sern de utilidad para profundizar en programacin orientada a objetos, aunque

obviamente tendremos que aadir nuevos conocimientos.


La caracterstica principal de la programacin orientada a objetos es el uso de objetos. Un
objeto es la combinacin de cdigo y datos. Un mdulo (paquete de cdigo) se ejecutar en base a que
est asociado a un objeto y no de forma libre. A efectos prcticos, veremos los objetos como elementos
prefabricados a los que dotamos de sentido. Supongamos que somos fabricantes de naves
prefabricadas. Montamos la nave (objeto), la dotamos de personal y maquinaria con una, dos o tres
lneas de proceso (cdigo) y damos instrucciones precisas sobre qu se debe hacer cuando se
transmitan determinados mensajes a la nave (p. ej. "fabricar pan"), en funcin del contenido o
existencias de la nave (datos). La forma de pensar ha variado respecto a la programacin tradicional. En
primer lugar, ahora no tenemos que construir la nave, puesto que disponemos de ella prefabricada. No
vamos a generar instrucciones sobre lo que debe pasar, sino sobre lo que hay que hacer en funcin de
los mensajes que se reciban. Por ltimo, los datos no van a viajar libres, sino que van a estar vinculados
a objetos portadores de datos.
Antes que adentrarnos en un desarrollo terico sobre propiedades de la programacin
orientada a objetos vamos a preferir, siendo prcticos, empezar a hablar de Java.

INTRODUCCIN A JAVA
Java es un lenguaje de programacin creado por la compaa Sun. Antes de su lanzamiento al
mercado, como demostracin de que se trataba de un lenguaje potente, la empresa desarroll el
navegador "HotJava". Este navegador estaba construido utilizando el lenguaje Java. Fue mostrado en
mayo de 1995 y a principios de 1996 se lanz la primera versin del lenguaje. Esta versin introdujo
caractersticas novedosas con respecto a otros lenguajes de programacin que hicieron que Java
pudiera calificarse de lenguaje innovador. La principal novedad introducida fue que Java es
independiente del hardware y del sistema operativo en que se ejecute. Es decir, Java es independiente
de la plataforma: los programas Java no se ejecutan en nuestra mquina real (en nuestro ordenador o
servidor) sino que Java simula una mquina virtual con su propio hardware y sistema operativo. Y es en
esta mquina virtual simulada donde se ejecuta Java. Esto permite que Java pueda ejecutarse en una
mquina con el Sistema Operativo Unix, Windows, Linux o cualquier otro, porque en realidad no va a
ejecutarse en ninguno de los sistemas operativos, sino en su propia mquina virtual que se instala
cuando se instala Java.
La mquina virtual era la razn principal que diferenciaba a Java de otros lenguajes cuando
irrumpi en el mercado de los lenguajes de programacin. Otra razn de su gran xito ha sido que
cuando surgi se convirti en un lenguaje ms orientado a objetos que todos los otros lenguajes
existentes. Adems cabe destacar su potencia y el permitir crear programas de aspecto y
funcionamiento

muy similar al tambin

muy popular "entorno Windows".

Esto afianz su

reconocimiento como un lenguaje de programacin innovador.


Java es un lenguaje que se apoya en objetos. A nivel terico se podra distinguir entre
programacin orientada a objetos, programacin basada en objetos o programacin que utiliza objetos.
No vamos a entrar en este tipo de disquisiciones. Hablaremos simplemente de programacin orientada
a objetos o POO. A nivel prctico lo que nos interesa es disponer de objetos que podemos insertar en
nuestros programas sin tener que teclear una sola lnea de cdigo y que esos objetos nos van a hacer
fcil y cmoda la programacin.
El usuario de Java se enfrenta a una larga lista de trminos como pueden ser: atributo, ventana,
componente, evento, mtodo, argumento, operador, instruccin, etc. que inicialmente pueden resultar
un tanto abrumadores por su variedad y carcter abstracto. Trataremos de evitar el uso de
"terminologa abstracta" en la medida de lo posible, pero necesariamente habremos de enfrentarnos a
ella y utilizarla. Una forma sencilla de hacerlo es "aprender jugando". Arrancamos el ordenador y vamos
descubriendo Java a travs de pequeos programas de prueba. Nosotros utilizaremos programas que
ejecuten en "cliente", que como mencionamos anteriormente son los que se ejecutan en un sola
mquina (por ejemplo nuestro ordenador personal) y no necesitan comunicarse con otro programa en
otra mquina para solicitarle algn servicio, como puede ser el de base de datos. En este curso nos
centraremos en conocer el lenguaje y sus aspectos ms fundamentales, que consideramos es el primer
paso para introducirnos en Java. Una mayor profundizacin, como aplicaciones cliente-servidor o
aplicaciones web, las dejaremos para otro curso.

Prxima entrega: CU00502A

Obtener el instalador de Java.


(CU00503A)
Seccin: Cursos
Categora: Curso Lenguaje de programacin Java nivel I
Fecha ltima actualizacin: 2010
Autor: Walter Sagstegui Lescano
Resumen:

Entrega n2 del curso Lenguaje de program acin Java Nivel I.

10

INSTALACIN DEL ENTORNO DE TRABAJO

Si no tienes instalado Java en tu ordenador, es necesario que lo instales para poder comenzar a
programar. Java, aparte de ser el nombre del lenguaje, es tambin el nombre del programa que
necesitamos para poder escribir cdigo en nuestro ordenador.

DESCARGA DE JAVA

As pues, el primer paso ser ir a la direccin http://Java.sun.com/j2se/. Esta es una web de la


multinacional Sun (ahora integrada en Oracle), creadora de Java. Desde ah bajaremos el Java
Development Kit (JDK), que es el entorno Java que utilizaremos para realizar nuestros primeros
programas. Nosotros en concreto nos hemos bajado la versin JD K 1.6.0_18. Esta versin no es ms que
un archivo ejecutable, es decir, que tiene la extensin .exe. En nuestro caso el archivo se llama "jdk6u18-windows-i586.exe". Fjate que nos bajamos una versin para Windows. Los pasos para la descarga
los iremos explicando con imgenes.
Comentar que el lenguaje de programacin Java, tiene versiones para instalarse en la mayora de los
Sistemas Operativos presentes en el mercado (Unix, Windows, Linux y otros ms). En este curso
usaremos Windows 7, el cual ser nuestro Sistema Operativo de referencia. Tambin puedes utilizar
Windows Vista que es muy similar, o Windows XP, aunque en el XP puedes encontrar algunas pequeas
variaciones.
Una vez en la pgina de la empresa Sun, que se muestra en el navegador al poner la direccin URL
http://Java.sun.com/j2se/, lo primero que hay que hacer es posicionarnos con el mouse en el enlace
"Downloads" y nos mostrar un men con varias opciones. Seleccionaremos la segunda opcin en la
lista: "Java SE", es decir, Java Standard Edition o Edicin Standard de Java.

En la siguiente pgina, pinchamos con el mouse en el enlace "Download JDK".

Java Expert?
Gef pad everytime you
answer iava questions1
Larn More

L IV IP E R S O N

Llegados a la siguiente pgina, debemos hacer click en el enlace "Download", para descargar la versin
ms actual de Java. Por defecto, est seleccionada la versin Java para el Sistema Operativo Windows
en el combo desplegable "Platform". Esta es la plataforma con la que trabajaremos en este curso; no
obstante, se puede trabajar con Java tambin en otras plataformas. Existen versiones de Java para
muchos otros Sistemas Operativos como puede comprobarse desplegando el combo.

Si nos pide nombre de usuario (User Name) y Password (contrasea) pulsaremos en "Skip this Step"
(saltar este paso) ya que no es obligatorio el registro como usuarios.
En esta ltima pgina, haremos click con el mouse en el enlace indicado con el nombre de archivo (que
ser del tipo jdk... .exe), para empezar la descarga del instalador Java. En nuestro caso pulsamos sobre
el link para descargar el archivo "jdk-6u18-windows-i586.exe" y lo guardamos en nuestro disco duro. El
archivo puede ocupar bastante (ms de 70 Mb), por lo que necesitamos una buena conexin a internet
si queremos que la descarga sea rpida.

Con esto hemos finalizado la descarga del instalador de Java. Si tienes problemas para descargar desde
internet, tambin puedes conseguir el instalador Java en cd's de revistas especializadas que estn
disponibles en bibliotecas pblicas. Una vez descargado, el siguiente paso ser instalar Java en nuestro
ordenador.

Prxima entrega: CU00504A

Instalacin de Java en Windows.


(CU00504A)
Seccin: Cursos
Categora: Curso Lenguaje de programacin Java nivel I
Fecha ltima actualizacin: 2010
Autor: Walter Sagstegui Lescano
Resumen:

Entrega n3 del curso Lenguaje de program acin Java Nivel I.

10

INSTALACIN DE JAVA EN WINDOWS


En este apartado, explicaremos los pasos de instalacin de Java en el Sistema Operativo Windows. Ten
en cuenta que puede haber pequeas diferencias segn la versin que usemos (Windows 7, Windows
Vista, Windows XP, etc.). Primero, tenemos que hacer doble click sobre el archivo instalador de Java,
que habremos descargado anteriormente.

Aparece una ventana inicial de instalacin, informndonos sobre las condiciones de la licencia. Una vez
leda, continuamos la instalacin pulsando en el botn "Accept" (aceptar).

jl JavafTM) SE Development Kit 6 Update 18 - License

Please read the following license agreement caretully.

Sun Microsystems, Inc. Binary Cade License Agreement


for the JAVA S E DEVELOPMENT KIT (JDK). VERSION 6
SUN MICROSYSTEMS, INC. ("SUN") IS WILLING TO LICENSE THE
SOFTWARE IDENTIFIED BELOW TO YOU ONLY UPON THE CONDITION
THAT YOU ACCEPT ALL OF THE TERMS CONTAINED IN THIS BINARY
CODE LICENSE AGREEMENT AND SUPPLEMENTAL LICENSE TERMS
(COLLECTIVELY AGREEMENT'). PLEASE READ THE AGREEMENT
CAREFULLY. BY USING THE SOFTWARE YOU ACKNOWLEDGE THAT
YOU HAVE READ THE TERMS AND AGREE TO THEM. IF YOU ARE
AGREEING TO THESE TERMS ON BEHALF OF A |COMPANY OR OTHER
LEGAL ENTITY, YOU REPRESENT THAT YOU HAVE THE LEGAL/
AUTHORITY TO BIND THE LEGAL ENTITY TO THESE TERMS. |/ y OU DO

En la ventana que aparece a continuacin, lo primero en que debemos fijarnos es en la ruta de


instalacin ("Install to: "). Es la direccin en la que se instalar Java. Nos aparece la ruta por defecto. Si
no estamos de acuerdo con dicha ruta podemos cambiarla con el botn "Change" (cambiar). Como
recomendacin, aconsejamos evitar cambiarla si no tenemos conocimientos avanzados. El motivo para
ello es que muchos programas que trabajan con Java reconocen por defecto dicha ruta. Mantenindola
evitamos problemas y tener que estar configurando la ruta a emplear por el resto de programas.

En la parte central nos seala opciones respecto a qu podemos instalar (Development Tools o
herramientas de desarrollo, Demos and samples o ejemplos de prueba, Source Code o cdigo fuente, y
Public JRE o mquina virtual). Podemos elegir instalar ciertas partes de Java y dejar sin instalar otras.
Para ahorrar espacio en el disco duro, podemos no instalar ciertas partes de Java como los ejemplos de
prueba, lo que haramos deseleccionando esta opcin. Si no tienes problemas de espacio lo
recomendable es dejarlo todo tal como est y que se instalen todas las opciones. Dicho lo anterior
hacemos click en el botn "Next" (siguiente) y continuamos con la instalacin.

Sin haber terminado el proceso de la ventana anterior, se muestra la siguiente ventana, que es algo
parecida a la que vimos anteriormente, donde nos muestra una ruta por defecto en la que se instalar
la "Maquina Virtual" de Java. La mquina virtual se reconoce por el nombre de "jre6", presente al final
de la ruta. Siguiendo el mismo criterio comentado anteriormente, es una ruta ya reconocida por
defecto por muchos programas que requieren de la "Mquina Virtual" Java. Para evitar problemas de
configuracin de ruta, es preferible que los usuarios no avanzados no hagan cambios. Si an as
quisiramos hacerlo, usaramos el botn "Change..." (cambiar). Seguimos con la instalacin, haciendo
click en el botn "Next" (siguiente).

El proceso de instalacin continua hasta que la coloracin verde (progreso de la instalacin) cubre en
su totalidad la barra gris.

Finalmente, si todo ha ido bien, aparecer una ventana indicando que la instalacin se ha completado.
Hacemos click en "Finish" para finalizar la instalacin.

Ahora vamos a verificar la instalacin. Para ello vamos a comprobar que se hayan creado dos carpetas
con un nombre similar a "jdk1.6.0_18" y "jre6" en la ruta "C:\Archivos de programa (x86)\Java". La
primera carpeta, de nombre similar a "jdk1.6.0_18", corresponde al compilador e intrprete Java, cuyas
funciones explicaremos ms adelante. La segunda carpeta, de nombre similar a "jre6", corresponde a la
"Mquina Virtual" de Java, concepto que ya hemos comentado anteriormente. Si hemos llegado hasta
aqu, hemos finalizado correctamente la instalacin de Java en Windows.

Organizar *
VT Favoritos

Descargas
K

Escritorio

Sitios recientes

Bibliotecas
[3 Documentos
B

Imgenes

J) Msica

Prxima entrega: CU00505A

Disco local (C:) Archivos de programa(x86) Java

Incluir en. biblioteca


-

Nombre
| l ) jdkl.6.0_18
i jreS

Compartir con

Grabar

Mua carpeta
Fecha ere modifica,

Tipo

19/03/201110:15

Carpeta de archivo

18/03/2010Vl;53

Carpeta de archivo

Configuracin de Java en Windows


(CU00505A)
Seccin: Cursos
Categora: Curso Lenguaje de programacin Java nivel I
Fecha ltima actualizacin: 2010
Autor: Walter Sagstegui Lescano
Resumen:

Entrega n4 del curso Lenguaje de program acin Java Nivel I.

10

CONFIGURACIN DE JAVA EN WINDOWS


En este apartado, explicaremos la configuracin de Java en el Sistema Operativo Windows. Ten en
cuenta que puede haber pequeas diferencias segn la versin que usemos (Windows 7, Windows
Vista, Windows XP, etc.). Vamos a ver paso a paso cmo configurar las variables de entorno del sistema.
Existen una gran variedad de variables de entorno para diferentes propsitos, entre ellos la
comunicacin de Java con el sistema operativo. Nos vamos a centrar en slo dos, las ms importantes
para nuestra configuracin. Estas son las variables que informan al Sistema Operativo dnde y cmo
ubicar Java dentro del mismo. Estas variables son: "JAVA_HOME" y "PATH".

PASO 1: Configurar la variable JAVA_HOME

JAVA_HOME, es una variable de entorno del sistema que informa al Sistema Operativo sobre la ruta
donde se encuentra instalado Java.
Seguiremos la siguiente secuencia de pasos para configurar esta variable:
Abrimos el explorador de Windows o pulsamos sobre "Mi Pc". Pulsamos sobre Equipo ^ Propiedades
^ Configuracin avanzada / Cambiar configuracin ^ Opciones avanzadas ^ Variables de entorno ^
Nueva (Variables del sistema). Luego escribir en las cajas de texto que se muestran lo siguiente:
Nombre de variable

: JAVA_HOME

Valor de variable

: escribiremos aqu la ruta en que se haya instalado Java. Puedes consultarla en

el propio explorador de Windows buscando la carpeta en que se ha instalado Java, que normalmente
ser del tipo C:\Program Files\Java\jdk1.6.0_18 C:\Program Files (x86)\Java\jdk1.6.0_18.
C:\Program Files\Java\jdkl.6.0_l
Archivo

Edicin

Ver

Herramientas

SR R M
3s I

Ayuda

Grabar
Fecha modificacin

Tipo

bin

03/04/2010 20:03

Carpeta de archivos

demo

03/04/2010 20:04

Carpeta de archivos

include

03/04/2010 20:03

Carpeta de archivos

Nombre

Carpetas

InterVideo

Java
jdkl.6.0_18

u jre

03/04/2010 20:03

Carpeta de archivos

jrel.6.0

, lib

03/04/2010 20:03

Carpeta de archivos

jre6

sample

03/04/2010 20:04

Carpeta de archivos

Tamao

Itmoh

L i COPYRIGHT

17/12/2009 18:33

Archivo

4 KB

MagidSO

RUCEN SE

03/04/2010 20:03

Archivo

18 KB

Microsoft.NET

3jUCENSE.rtf

03/04/2010 20:03

Rich Text Format

18 KB

Microsoft Games

C , README.html

03/04/2010 20:03

Documento HTML

29 KB

Microsoft Office

. READMEJa.html

03/04/2010 20:03

Documento HTML

26 KB

Microsoft Visual Studio

^ README_zh_CN.html

03/04/2010 20:03

Documento HTML

21 KB

Microsoft Visual Studio 8

^ register.html

03/04/2010 20:09

Documento HTML

6 KB

registerja.html

03/04/2010 20:09

Documento HTML

6 KB

fSj register_zh_CN.html

03/04/2010 20:09

Documento HTML

17/12/200918:34

Carpeta comprim...

19.195 KB

03/04/2010 20:03

Documento de tex...

183 KB

Microsoft Works

Movie Maker
Mozilla Firefox

1 srcjip

MSBuild
MSN
MSXML4.0
myphotobook
MySQL
MySQL-Front

[_, THIRDPARTYUCENSER..
E

5 KB

PASO 2: Configurar la variable Path


PATH, es una variable de entorno del sistema, que informa al Sistema Operativo sobre la ruta de
distintos directorios esenciales para el funcionamiento del ordenador. Vamos a aadir al contenido de
la variable Path el luegar donde se encuentran los ficheros ejecutables de Java necesarios para su
ejecucin, como el compilador (javac.exe) y el intrprete (java.exe).
Seguiremos la siguiente secuencia de pasos para configurar esta variable.
Abrimos el explorador de Windows o pulsamos sobre "Mi Pc". Pulsamos sobre Equipo ^ Propiedades
^ Configuracin avanzada / Cambiar configuracin ^ Opciones avanzadas ^ Variables de entorno ^
Editar (Variables del sistema). Luego al final del contenido que ya exista, aadiremos un punto y coma
con el texto "%JAVA_HOME%\bin". No deben quedar espacios intermedios. Nos quedar similar a esto:
Nombre de variable

: PATH

Valor de variable

: C:\WINDOWS;C:\WINDOWS\system32 ;%JAVA_HOME%\bin

A modo de resumen: hemos creado una variable de entorno llamada JAVA_H O M E y hemos aadido
una expresin a la variable PATH.

Asegrate de que se han creado correctamente cerrando todas las ventanas y entrando a Variables de
entorno para comprobar que est todo como hemos indicado.

Prxima entrega: CU00506A

Compilar y ejecutar un programa


en Java (CU00506A)
Seccin: Cursos
Categora: Curso Lenguaje de programacin Java nivel I
Fecha ltima actualizacin: 2010
Autor: Walter Sagstegui Lescano
Resumen:

Entrega n5 del curso Lenguaje de program acin Java Nivel I.

10

COMPILAR Y EJECUTAR UN PROGRAMA EN JAVA


En este apartado, comprobaremos si hemos realizado correctamente los pasos de instalacin y
configuracin de Java en Windows. Pero antes vamos a explicar algunos conceptos importantes que nos
permitan entender lo que vamos haciendo. El primer concepto a explicar sera el de "compilacin" o
"compilar" y significa traducir el cdigo escrito en "Lenguaje Java", que entendemos nosotros los
humanos, pero no las mquinas, a un cdigo en "Lenguaje Mquina", que entienden las mquinas, pero
no entendible por nosotros. Se hace esto porque a los humanos nos costara mucho trabajar
directamente trabajar con el lenguaje de los ordenadores, por lo que usamos un lenguaje ms
asequible para nosotros (en este caso Java) y luego emplear un traductor (compilador). Aclarar que al
ser Java un programa que se compila en una "Mquina Virtual", el archivo resultante de la compilacin
es un archivo con la extensin .class. Este archivo .class est escrito en un "Lenguaje de Mquina
Virtual", por tanto, para que la "Mquina Real" (nuestro ordenador) nos d el resultado, hay que
"interpretar" (traducir) el archivo .class a un cdigo en "Lenguaje de Mquina Real". Esta es la labor de
lo que llamamos "intrprete" o traductor del lenguaje de la mquina virtual a la mquina real. Los
archivos respectivos que se encargan de estas tareas son:

El compilador Java > javac.exe


El intrprete Java > java.exe

La

ruta

de

ambos

archivos

es

esta

una

similar

esta:

"C:\Archivos

de

programa

(x86)\Java\jdk1.6.0_18\bin". Aclarar que para efectos de compilacin se usar una ruta del tipo:
"C:\Program Files (x86)\Java\jdk1.6.0_18\bin", que es la ruta real con la que Windows trabaja. El
explorador de Windows nos muestra una barra con la ruta en que nos encontramos (ruta aparente).
Para conocer la ruta real basta pinchar sobre la ruta aparente.

Ahora indicaremos los pasos para compilar e interpretar nuestro primer programa escrito en lenguaje
Java.

PASO 1

Abrir el Bloc de notas de Windows (Inicio ^ Todos los programas ^ Accesorios ^ Bloc de notas), que
ser nuestro editor de trabajo por su simplicidad. Ms adelante veremos un editor ms sofisticado. Si
prefieres usar otro editor en este momento no hay problemas (por ejemplo WordPad, Notepad, etc.).
Da igual mientras que se grabe el programa como "Texto sin formato" (en cdigo ASCII). Una vez que
tengamos el bloc de notas abierto escribiremos nuestro primer programa, que mostrar un texto "Hola
Java", en la ventana consola del DOS (Ventana negra que ms adelante explicaremos cmo manejar).
Aclarar que por el momento no debemos preocuparnos de entender lo que escribimos: esto lo
explicaremos ms adelante. Nuestro objetivo ahora es simplemente comprobar que podemos ejecutar
un programa escrito en Java.
El cdigo de nuestro programa en Java, escrito en el bloc de notas, ser el siguiente:
public class Ejemplo {
public static void main(String[] arg) {
System.out.println("Hola Java");
}
}
Los caracteres de llaves y corchetes se escriben pulsando ALT GR + la tecla correspondiente.

public sta tic void main(string[] arg) {

A continuacin procedemos a grabar nuestro programa: pulsamos en Archivo ^ Guardar como y le


ponemos como nombre Ejemplo.java. Estamos siguiendo una norma dictada por Java, que es el nombre
del archivo (Ejemplo.java) y el nombre del programa (que hemos definido dentro del archivo despus
de escribir public class, y que tambin es "Ejemplo") san idnticos. Resumidamente: hemos de hacer
coincidir nombre del archivo y nombre del programa, tanto en maysculas como en minsculas, y la
extensin del archivo habr de ser siempre ".java".

Para seguir un orden y evitar problemas posteriores durante la compilacin, seguiremos los siguientes
pasos. Crearemos una carpeta en C: denominada "Ejercicios". Ubicaremos el programa Ejemplo.java
dentro de esta carpeta.

PASO 2

En este paso, veremos la compilacin e interpretacin de un programa Java. Comentar que este
paso se har usando la ventana consola del DOS. Para visualizar esta ventana debemos seguir estos
pasos: Inicio ^ Todos los programas ^ Accesorios ^ Smbolo del sistema. A continuacin, una vez que
estemos en la ventana consola debemos escribir el comando "cd c:\Ejercicios" y pulsar enter. Esto nos
traslada a la carpeta donde se ubica nuestro archivo ("Ejemplo.java"). A continuacin daremos la
instruccin para que se realice el proceso de compilacin del programa, para lo que escribiremos "javac
Ejemplo.java", donde "javac" es el nombre del compilador (javac.exe) que transformar el programa
que hemos escrito nosotros en lenguaje Java al lenguaje de la mquina virtual Java, dando como
resultado un archivo "Ejemplo.class" que se debe haber creado en este mismo directorio. Si te aparece
un mensaje de error revisa todos los pasos anteriores que hemos explicado, pues es posible que no se
hayan creado las variables de entorno o que el archivo no est bien ubicado, etc. Para comprobar si se
ha creado el archivo escribiremos en la ventana consola el comando "dir". Comprobaremos que nos
aparecen dos archivos: Ejemplo.class (creado por el compilador) y Ejemplo.java (creado por nosotros).
Finalmente, vamos a pedirle al intrprete que transforme el cdigo de la mquina virtual Java en cdigo
mquina interpretable por nuestro ordenador. Para ello escribiremos en la ventana consola: java
Ejemplo.
El resultado ser que se nos muestra la cadena "Hola Java".

| Smbolo del sistema


iu p u u ft Lfiiidoui: CUu i'u in 6 .1 .7 6 0 0 1
opyricyht <c> 2009 M ic r o s o ft C o r p o r a t io n . R es erva d o s to d o s
:\ U s e rs \ W a lte r> c d c N E j e r c i c i o s

=\ E je r e ic io s > ja va c Eje m p lo . ja v a
c : \ E je r c ic io s ^ ja u a E jem p lo
o la

Ja v a

: S E jerr. ir. io s >

Prxima entrega: CU00507A

lo s d e r e c h o s .

Como obtener ayuda en Java.


(CU00507A)
Seccin: Cursos
Categora: Lenguaje de programacin Java Nivel I
Fecha ltima actualizacin: 2010
Autor: Walter Sagstegui Lescano
Resumen:

Entrega n6 del curso Lenguaje de program acin Java Nivel I".

10

LA AYUDA DE JAVA
Si ya has trabajado con algn otro lenguaje de programacin, seguramente tendrs clara la importancia
de las ayudas de los lenguajes para los programadores. Pero si no es as, vamos a tratar de dejarlo claro.
En primer lugar, cabe decir que prcticamente nadie conoce a fondo todos los trminos y posibilidades
de un lenguaje. Es como un idioma hablado: hay gente que lo chapurrea, gente que lo habla
correctamente pero con escasez de recursos, gente que lo habla bien y con abundancia de recursos y
expertos a distintos niveles. Pero nadie, lo sabe "absolutamente todo". Por tanto, cuando estamos
programando y no sabemos hacer algo o tenemos dudas, tendremos que recurrir a ayudas externas
como:

La ayuda del lenguaje.

Manual de lenguaje.

Libros sobre programacin, apuntes, etc.

Otros programas.

Otros programadores.

La ayuda del lenguaje es una parte del programa o entorno de programacin, a la que podemos acceder
para encontrar informacin y recomendaciones, que han sido generadas por los propios creadores del
lenguaje. Las principales ventajas de la ayuda de un programa son:
Rapidez: si estamos programando y surge una duda o necesidad, podremos resolverla a travs de la
ayuda, sin necesidad de movernos o desplazar la atencin de lo que estamos haciendo.
Potencia: las ayudas suelen ser bastante completas y tiles, por lo que podemos estar seguros de
que van a resolver un alto porcentaje de los problemas que podamos tener con el lenguaje.
Como inconvenientes de las ayudas podemos citar:
Si no conocemos el trmino que describe aquello que buscamos, quizs no podamos llegar a la
informacin deseada.
A veces, la ayuda es una traduccin no demasiado acertada desde otro idioma, lo que dificulta su
comprensin.
Cualquier programador que se precie, conoce y usa las ayudas de los programas. Son de especial
inters, para programadores aprendices o autodidactas.
Veamos ahora cmo acceder y optimizar la ayuda de Java. Como no vamos trabajar con un entorno
visual,

en

particular,

la

ayuda

la

obtendremos

http://www.java.com/es/download/help/index.xml

de

pginas

oficiales

de

Java

y de pginas que resulten de una bsqueda en

Google, cada persona valorar la pgina que le resulte ms funcional acorde a sus necesidades, as
como navegar por los distintos links incluidos en foros, de ah que no podemos establecer una nica
pgina de referencia de Java.

Quizs sea para algunos, una forma muy tediosa de bsqueda de informacin, pero actualmente con
los buscadores cada vez ms sofisticados, la ayuda la podemos obtener al instante, slo es cuestin de
saber buscar por la red, ya que los buscadores se han convertido en verdaderos y ventajosos surtidores
de informacin.
Mostraremos a continuacin, unos ejemplos de bsqueda avanzada, en el buscador ms usado
actualmente Google, y que ser de gran utilidad al momento de querer buscar informacin sobre Java:
Buscar todos los documentos en formato "pdf", que contengan esta expresin "Java" exactamente.
Entonces pones en la caja de texto de bsqueda de google, lo siguiente:
"Java" filetype:pdf
Quizs, deseamos buscar algo ms especfico, como "variables en java". Entonces ponemos lo siguiente:
"variables en java" filetype:pdf
Ahora se me ocurre, desear buscar todas las pginas de universidades espaolas, que tengan la palabra
"Java". Entonces escribimos lo siguiente:
"Java" site:.edu.es
Mencionar que "edu.es" es un dominio, que hace referencia a las pginas de universidades espaolas,
lo mismo podemos hacer, si deseamos de universidades mexicanas, cambiando por este otro dominio
"edu.mx"
Hay entornos de trabajo visuales para Java, como Netbean, Eclipse etc..., que presentan ayudas
integradas al entorno, pero sus explicaciones no estn comprendidas en este trabajo.

Prxima entrega: CU00508A

Variables con Java (CU00508A)


Seccin: Cursos
Categora: Lenguaje de programacin Java Nivel I
Fecha ltima actualizacin: 2010
Autor: Walter Sagstegui Lescano
Resumen:

Entrega n7 del curso Lenguaje de program acin Java Nivel I".

10

VARIABLES CON JAVA


Vamos a tratar los aspectos ms bsicos de la declaracin de variables con Java y a dar algunas
orientaciones a travs de las que profundizar en el manejo de variables. En Java, al igual que en todo
lenguaje de programacin, hay una serie de palabras reservadas que no pueden ser empleadas como
nombres de variables (if, int, char, else, goto....); algunas de estas palabras se emplean en la sintaxis del
lenguaje; otras, como goto, aunque no se emplean en la actualidad se han reservado por motivos
histricos, de compatibilidad o por si se emplean en el futuro.
Un nombre de variable en Java debe ser un nombre comprendido en el sistema de caracteres Unicode.
Unicode es un sistema de codificacin que soporta texto escrito en distintos lenguajes humanos,
permitiendo la codificacin de 34.168 caracteres. Esto nos permite utilizar en nuestros programas Java
varios alfabetos adems del ingls como el japons, el griego, el ruso o el hebreo y claro est, el
castellano. Posiblemente no vayamos a utilizar nunca el hebreo ni el ruso, pero disponer de un juego de
caracteres amplio tiene su inters. Por ejemplo, esto es importante para que los programadores
puedan escribir cdigo en su lenguaje natural. Por lo tanto podremos utilizar la como parte de los
nombres de variable si as lo deseamos.

NOMBRES Y TIPOS DE VARIABLES


Java obliga a declarar una variable antes de ser usada. Por eso se dice que Java es un lenguaje
fuertemente tipeado, caractersticia de la cual no podemos evadirnos. Por otro lado, tambin se usa
como convencin (por lo cual es recomendable pero no obligatorio) que las variables siempre empiecen
con letra minscula y que cuando estn compuestas por ms de una palabra se coloquen juntas siendo
la letra inicial de cada palabra posterior a la primera una mayscula. Por ejemplo "pesoNioEspaol",
"edadAlumnos", "textoMensajesRepetidos",etc. Otra convencin es que todo nombre de variable se
declare al inicio del programa y no en cualquier parte del programa, as como inicializarlas a un valor
para evitar errores por valores nulos posteriormente durante la ejecucin del programa. Esto son
formas de trabajar no obligatorias que usan los buenos programadores para mantener un orden y de
esta manera generar buenos programas.
En cuanto a los tipos de variables, en Java las podemos clasificar en funcin del tipo de dato que
contienen. Veamos los tipos de variables.

TIPO DE DATOS

MEMORIA
REQUERIDA

RANGO DE VALO RES

EQUIVALENCIA
CON VARIABLES
USADAS EN
PSEUDOCDIGO

1 byte

-128 a 127

Entero

Uso en contadores,
bucles, etc.

control

de

2 bytes

-32 768 a 32767

Entero

Uso en contadores,
bucles, etc.

control

de

Entero

Uso en contadores,
bucles, etc.

control

de

Uso en contadores,
bucles, etc.

control

de

Byte
(Entero)

Short
(Entero corto)

OBSERVACIONES

-2 1 4 7 4 8 3 6 4 8
Int
4 bytes

(Entero)
214 7 4 8 3 6 4 7

Long
(Entero largo)

8 bytes

9223372036854775808
a
9223372036854775807

Entero

4 bytes

3 ,4 E -3 8 a 3 ,4 E 3 8

Real

Uso cuando se requieren decim ales.

8 bytes

1,7E-308 a 1,7E308

Real

Uso para aplicaciones cientficas o


especiales.

Float
(Decim al sim ple)

Double
(Decim al doble)

True
Boolean
(Booleano)

1 byte

Booleano

False es el valor predeterm inado.

False

String

Char

Variable

2 bytes

A lfanum rica

Los Strings pueden ser tan largos


com o mem oria haya disponible; no
se ha definido una longitud m xim a
utilizable en Java.

Carcter

Cad a
carcter
en
Java
esta
codificado
en
un
form ato
denom inado
Unicode.
En
este
form ato cada carcter ocupa dos
bytes, frente a la codificacin en
ASCII, dnde cada carcter ocupaba
un solo byte.

Conociendo ya los tipos de variables y cmo nombrarlas, veamos ahora cmo declararlas y asignarles
contenido al mismo tiempo. Una forma bsica que nos permita empezar a trabajar y, de paso, crear
nuestro primer programa.

Usaremos para ello la sintaxis:


[Tipo de variable] [Nombre de variable] = [Valor];

EJEM PLO
Supn que declaras: una variable destinada a contener la edad de una persona. Sabemos que la edad
de una persona puede oscilar entre cero y 125 aos (siendo groseros), y que sus valores no son
decimales, entonces segn los tipos que tenemos en Java podramos usar "byte" o "int" o "short" o
"long", pero analizando de cada uno de ellos sus rangos de valores que soportan, segn la tabla
indicada arriba, siempre hay una que es mejor que otra en cuanto a que consumiriamos menos
memoria. Por tanto puede declararse como tipo byte (-128 a 127) en lugar de int (-2147483648 a
2147483647) sin ningn problema. Si una variable no lo requiere, no conviene asignarle un tipo que
ocupe ms memoria de la realmente requerida. En el caso de la edad, si la declaramos como entera
vamos a ocuparle 4 bytes al sistema cuando podramos haber ocupado slo 1 con el tipo byte. Esto, a
gran escala, es una falta de eficiencia y economa.
byte edad = 78;
A la hora de declarar variables conviene seguir estas pautas:

Elegir siempre el tipo de variable ms sencillo posible. Consideraremos que el grado de sencillez
viene definido por la memoria requerida (a menor memoria requerida mayor es la sencillez). Esto
redunda en un menor consumo de recursos del sistema y en una mayor rapidez de las operaciones
que realiza el ordenador.

Realizar declaraciones ordenadas y claras.

Java permite declarar variables sin contenido en mltiples lneas una por lnea, pero tambin varias
variables en una sola lnea.
Usaremos para ello la sintaxis:
[Tipo de variable][Nombre de variable],..., [ Nombre de variable];

EJEMPLO
Expresin abreviada

Equivalente
a)

int i;
int j;

a) in t i, j, k;

int k;
o
int i; int j; int k;

En el ejemplo vemos que la expresin abreviada sera la forma ms simplificada de escribir la


declaracin de varias variables de un mismo tipo simplificando el cdigo del programa, aunque
podemos hacerlo de una u otra manera segn nuestras preferencias.

Prxima entrega: CU00509A

Ejemplos sobre declaracin y


asignacin de contenidos a
variables en Java (CU00509A)
Seccin: Cursos
Categora: Lenguaje de programacin Java Nivel I
Fecha ltima actualizacin: 2010
Autor: Walter Sagstegui Lescano
Resumen:

Entrega n8 del curso Lenguaje de program acin Java Nivel I".

10

EJERCICIO:
Realizar una declaracin de variables para las siguientes propuestas de programas.
a) Un programa que muestra un mensaje de bienvenida.
b) Un programa que nos pide nuestra edad y nos muestra el ao en que nacimos.
c) Un programa que nos muestra el valor medio de tres magnitudes.
d) Un programa que trabaja con: tres contadores para bucles, tres valores de momentos en una viga
(de magnitud no conocida), valores de longitud de la viga, canto y ancho y un valor interruptor que
permite o impide que se muestren resultados.

SOLUCIN:
a) String mensaje;
b) byte edad;
Se podra definir otra variable llamada aonacimiento segn el programador lo estime oportuno o no.
c) flo at m agnitudl, magnitud2, magnitud3;
flo at media;
Hemos utilizado el tipo float para cubrirnos las espaldas. No sabemos con qu tipo de valores vamos a
trabajar y por ello cogemos un tipo de variables bastante amplio como es el float. Preferimos no coger
double si no es estrictamente necesario.
Hemos utilizado dos lneas pero slo un tipo de variable Por qu? El programador ordena la
declaracin de variables como estime ms conveniente. En este caso ordenamos "valores para el
clculo" en una lnea y "resultados" en otra. Resulta ms fcil de leer y analizar que estando todo en
una sola lnea.
d) int i, j, k;
flo at momento1, momento2, momento3;
flo at largo, canto, ancho;
boolean muestraResultados;
Siempre ser preferible usar las expresiones m om entol, momento2 y momento3 antes que m1, m2 y
m3 que resultan ms confusas. Sin embargo, este tipo de decisiones siempre quedan a criterio del
programador.

ASIGNACION DE CONTENIDO A VARIABLES


Para la asignacin de contenido a variables se tendr en cuenta estas equivalencias:

Ejemplos de asignacin de contenidos son estos:

Declaracin

Ejemplo asignacin contenidos

int a;

a = 123;

float a;

a = - 3323,57f; 1

String a;

a = "Hay que mejorar";

String a;

a = "123 coches";

String a;

a = "Son 35,37 euros";

int salario;

salario = 30500;

float salario;

salario = 30500;

String salario;

salario = "Se asignarn 30500 euros";

Declaracin

Ejemplo asignacin contenidos


a = 5 + 2;

int a, b, suma;

b = 32;
suma = a + b;

[suma valdr 39]

a = 5;
b = 32;
int a, b, c, d, e;

boolean agotamiento;

c = a * b;

[c toma el valor 160]

d = a + c;

[d toma el valor 165]

e = d;

[e toma el valor 165]

agotamiento = true;

! Todo valor de tipo float debe llevar al final la letra "f" o "F" en caso contrario ser un valor double por defecto

Un programa que conste de:


int a;
a= 7*b

dar lugar a un error debido a que "b" no est declarada.


En cambio:

int a, b;
a= 7*b

Supone que "a" valga cero, ya que si no se asigna un valor a "b", esta variable tiene por contenido el
valor por defecto, es decir, cero. "7 * b" equivale en este caso a "7 * 0".

Prxima entrega: CU00510A

Creacin de un programa Java en


una ventana DOS (CU00510A)
Seccin: Cursos
Categora: Lenguaje de programacin Java Nivel I
Fecha ltima actualizacin: 2010
Autor: Walter Sagstegui Lescano
Resumen:

Entrega n9 del curso Lenguaje de program acin Java Nivel I".

10

Vamos a crear un programa que declare una variable tipo String llamada mensaje y nos muestre un
texto en la ventana del DOS. Para ello escribiremos el siguiente cdigo:
public class ImprimirMensaje {

public static void main(String arg[]) {


String mensaje;
mensaje = "Bienvenido a este programa";
System.out.println(mensaje);

}
}
Analicemos las lneas que lo componen.
1. Las llaves { } delimitan bloques (conjuntos de elementos de un programa) en Java.
2. public class ImprimirMensaje. Sera el bloque ms externo de todo programa Java, en donde
declaramos el nombre de nuestra clase, que llamaremos "ImprimirMensaje" y que ser a la vez el
nombre de nuestro programa. Esto es as dado que Java es un lenguaje de programacin orientado a
objetos y por lo tanto todo debe estar dentro de una clase desde un principio. La palabra public es
para aclarar que la clase "ImprimirMensaje" ser pblica, es decir se podr acceder a ella desde otra
clase. Esto lo veremos posteriormente en ejemplos ms avanzados.
3. public static void main(String arg[]) . Sera el bloque donde escribiramos nuestro programa Java y
se trata de un mtodo especial llamado main (principal); especial por el hecho de que cuando
compilemos nuestro programa, el compilador el primer mtodo que buscar ser el que tenga el
nombre main. Esto es as porque una clase tiene como elementos de su estructura uno o ms
mtodos y si queremos que nuestra clase sea un programa que podamos ejecutar, al menos uno de
ellos debe tener el nombre main. Un mtodo corresponde a una funcin o procedimiento (ambos
pueden recibir uno o ms valores de entrada, pero el primero devuelve siempre un solo valor y el
segundo no devuelve ningn valor). En nuestro caso void indicara que se trata de un procedimiento.
La palabra static indicara que el mtodo main es un mtodo de clase, es decir que se ejecutar sin
necesidad de crear un objeto de la clase. El mtodo main recibe String arg[], que significa "un array
de Strings". Este es el nico parmetro (opcional) de entrada que le podemos pasar por lnea de
comando. Su uso lo veremos en un ejemplo posteriormente cuando veamos arrays.
4. String mensaje. Aqu estamos declarando una variable de tipo String . Es decir, nuestra variable

mensaje solo podr recibir valores de tipo cadena.


5. mensaje = "Bienvenido a este programa". Aqu estamos asignando el valor alfanumrico

"Bienvenido a este programa" (es alfanumrico por estar entre comillas dobles) a nuestra variable
mensaje.

6. System.out.println(mensaje). Esta instruccin si la desglosamos en sus partes veremos lo siguiente:

println es un mtodo que recibe como valor de entrada nuestro mensaje, el cual ser mostrado en
la ventana DOS como un texto y con un enter de cambio de fila al final. Hay otro mtodo parecido
llamado print, que hace lo mismo, pero sin poner un enter de cambio de fila al final. En cuanto a out
es un objeto perteneciente a la clase System, y es un objeto ya establecido por java para invocar a
los mtodos print o println. No debemos preocuparnos por saber ms que esto de momento.
Compila e interpreta el programa para ver el resultado, siguiendo los pasos vistos en la entrega del
curso CU00506A. En las siguientes imgenes vemos primero la compilacin y luego la interpretacin del
programa, sin mayores detalles, al estar ya explicados en la entrega del curso indicada.

BS Administrador: Smbolo del sistema


C : \ E j e r c i c io s > ja i a c

I m p r im ir M e n s a je . j a v a

C : \ E j e r c i c io s >

Compilacin

Administrador: Smbolo del sistema


C : \ E j e r c i c i o s ) j a v a In p r in ir M e n s a je
B ie n v e n id o a e s t e p r o g r a n a
C :\ E je r c ic io s )

Interpretacin (Resultado)

El mtodo println sin ningn valor pasado como parmetro da lugar a que se muestre una lnea en
blanco. Prueba a introducir variables de tipo numrico y a dar lugar a que se muestren sus contenidos
en la ventana DOS. Juega con los nombres de las variables, sus contenidos y la asignacin de
contenidos.
Tambin puede resultar de inters que compruebes qu ocurre si declaras una variable de un tipo y le
asignas contenido de otro tipo.
Por ejemplo declara int salario, asgnale el contenido salario = "Son 3000 euros" y prueba a mostrarlo
en la ventana DOS.

o
Qu ocurre cuando incum plim os las previsiones de Ja va para asignar
contenidos a variables (por ejem plo, para una variable a tipo byte definir a =
532000, que est fuera del rango previsto)? No vam os a an alizar los distintos casos
que se pueden presentar, sino a tratar de dar una respuesta genrica. Cuando
hacem os algo no esperado, com o asign ar un valor fuera de rango, asign ar un valor
que no concuerda con el tipo de la variable, sum ar variables num ricas con
alfanum ricas, a sign a r decim ales a un nm ero entero..., etc. pueden suceder varias
cosas:
a)

Salta un error. Un m ensaje


bien el program a se detiene
b) El program a se ejecuta pero
c) El program a se ejecuta y los

im pide que el program a com ience a ejecutarse, o


m ientras se est ejecutando.
los resultados no son los deseados.
resultados son los deseados.

Com o program adores hem os de buscar program as 1 00% predecibles, en los que no
se pueda producir que "sea difcil prever lo que va a suceder". Por tanto
intentarem os que la declaracin y asignacin de contenidos a variables se ajuste a
las norm as de Java. En ltim a instancia, podrem os prever una rutina de gestin de
errores para casos im previstos.____________________________________________________

Prxima entrega: CU00511A

Arrays unidimensionales en Java.


(CU00511A)
Seccin: Cursos
Categora: Lenguaje de programacin Java Nivel I
Fecha ltima actualizacin: 2010
Autor: Walter Sagstegui Lescano
Resumen:

Entrega n10 del curso Lenguaje de program acin Java Nivel I".

10

VARIABLES CON NDICE O LOCALIZADOR. ARRAYS.


Un array en Java es una estructura de datos que nos permite almacenar un conjunto de datos de un
mismo tipo. El tamao de los arrays se declara en un primer momento y no puede cambiar luego
durante la ejecucin del programa, como s puede hacerse en otros lenguajes. Veremos ahora cmo
declarar arrays estticos de una dimensin.

ARRAYS UNIDIMENSIONALES
La sintaxis para declarar e inicializar un array ser:

Tipo_de_variable[ ] Nombre_del_array = new Tipo_de_variable[dimensin];

Tambin podemos alternativamente usar esta declaracin:


Tipo_de_variable[] Nombre_del_array;
Nombre_del_array = new Tipo_de_variable[dimensin];

El tipo devariable puede ser cualquiera de los admitidos por Java y que yahemos explicado.

Ejemplos

de declaracin einicializacin con valores por defecto de arrays usando todos los tipos de variables
Java, seran:
-

byte[ ] edad = new byte[4];

short[ ] edad = new short[4];

int[ ] edad = new int[4];

long[ ] edad = new long[4];

float[ ] estatura = new float[3];

double[ ] estatura = new double[3];

boolean[ ] estado = new boolean[5];

- char[ ] sexo = new char[2];


- String[ ] nombre = new String[2];
Aclarar que los valores por defecto son los siguientes:
a)

Para nmeros el valor cero "0".

b)

Para cadenas y letras el valor vaco.

c)

Para booleanos el valor false.

En caso de que queramos inicializarlos con valores propios, haremos esto:

Para nmeros enteros


int[ ] edad = {45, 23, 11, 9}; //Array de 4 elementos
De la misma forma procederamos para los otros tipos de enteros : byte, short, long.

Para nmeros reales


double[ ] estatura = {1.73, 1.67, 1.56}; //Array de 3 elementos
De la misma forma procederamos para el tipo float, pero teniendo en cuenta que los nmeros debern
llevar al final la letra "f" o "F". Por ejemplo 1.73f o 1.73F.

Para cadenas
String[ ] nombre = {"Mara", "Gerson"}; //Array de 2 elementos

Para caracterers
char[ ] sexo = {'m','f'}; //Array de 2 elementos

Para booleanos
boolean[ ] = {true,false}; //Array de 2 elementos
Cuando creamos un array de nombre "a" y de dimensin "n" (int[ ] a = new int[n]) estamos creando n
variables que son a[0], a[1], a[2],

a[n-1]. Los arrays se numeran desde el elemento cero, que sera el

primer elemento, hasta el n-1 que sera el ltimo elemento. Es decir, si tenemos un array de 5
elementos, el primer elemento sera el cero y el ltimo elemento sera el 4. Esto conviene tenerlo en
cuenta porque puede dar lugar a alguna confusin. Disponer de un valor con ndice cero puede ser de
utilidad en situaciones como considerar cada variable asociada a una hora del da, empezando a contar
desde la hora cero hasta la 23 (total de 24 horas), cosa que es habitual en algunos pases. En lugar de 1,
2, 3, ..., 24 estaramos usando 0, 1, 2, ..., 23.
Vamos a trabajarlo sobre el ordenador en un programa y ver qu pasara si declaramos un array de
tamao "n" y vamos asignando un valor a cada variable del array desde la posicin cero hasta la
posicin "n-1". Adicionalmente vamos a comprobar qu ocurre si tratamos de asignarle valor a la
variable de posicin "n".

El cdigo fuente del programa es el siguiente:

public class ArrayDeNombres {

public static void main(String arg[ ]) {


String[ ] nombre = new nombre[4];
nombre[0]
nombre[1]
nombre[2]
nombre[3]
nombre[4]

=
=
=
=
=

Luis;
Mara;
Carlos;
Jo se ;
Ismael; //Error:No existe esta variable array de ndice 4

}
}

Procedemos a la compilacin del programa de la siguiente manera:

C:\Ejenplos>javac ArrayDeNombres.java
C:\Ejenplos>

Obtenemos una respuesta (interpretacin) que es la siguiente:

C :\Ejenplos >java ArrayDeNorobres


Exception in tiread "main" java.lang.ArraylndexOutOfBoundsException: 3
at A r r a y D e N o m b r e s .m a i n<ArrayDeNonbres.java:9)
C : \Ejenplos>

Una vez escrito el programa, cuando compilamos observamos que no hay ningn error de sintaxis, es
decir, no faltan puntos y comas, las llaves estn bien equilibradas, las palabras reservadas del lenguaje
son las correctas, etc. Por tanto, aparentemente el programa debera ejecutarse y darnos un resultado.
Sin

embargo

cuando

cuando

interpretamos

el

programa

observamos

un

error

"ArrayIndexOutBoundsException". Este mensaje de error significa "desbordamiento de array", es decir,


que tratamos de acceder a una posicin del array que no existe. En nuestro caso, hemos tratado de
acceder a la posicin 4, que no est definida (slo se ha definido hasta la posicin 3). En esto Java es
muy estricto y no admite este tipo de error lgico del programador. Siguiendo el anlisis del error que
nos aparece en la ventana DOS leemos lo siguiente "ArrayDeNombres.java:9", que nos est indicando
que el error est en el archivo que contiene el programa de nombre "ArrayDeNombres.java", y ms
concretamente en la lnea 9.
Ahora ampliaremos conocimientos con respecto a la instruccin public static void main(String arg[ ]).
Esta instruccin es un estndar en Java, es decir, es la forma habitual de encabezar un programa que se
ejecuta en consola (ventana DOS). Ahora trataremos de entender un poco mejor el significado de este
encabezado. Vamos a analizar el significado de (String arg[ ]). En esta instruccin el mtodo main
admite que se le pase un "array de Strings" cuando se proceda a la ejecucin del programa si as lo
deseamos. String arg[ ] significa "un array de Strings" cuyo nombre es arg. Dicho de otra manera, al
ejecutar el programa podemos indicar "parmetros de entrada" de forma opcional. Si especificamos
parmetros de entrada, stos parmetros quedan asignados al array arg tomando el orden arg[0],
arg[1].
Lo dicho podemos aclararlo mejor con el siguiente ejemplo:
El cdigo fuente del programa es el siguiente:
public class ParametrosDeEntrada {

public static void main(String arg[ ]) {


System.out.println("Cantidad de parmetros : " + arg.length);
System.out.println(arg[0]);
System.out.println(arg[1]);
}

Damos por entendido que ya hemos compilado el programa y no hay errores de sintaxis. Nos
centramos por tanto en la ejecucin del programa (interpretacin).
Si escribimos en la ventana DOS java ParametrosDeEntrada Pepe Luis Juan, los parmetros de entrada
son Pepe, Luis y Juan. Cuando ejecutamos el programa se nos mostrar que la cantidad de parmetros
son tres, y adems nos mostrar el primer y segundo elementos del array, es decir, Pepe y Luis.
Si escribimos en la ventana DOS java ParamentrosDeEntrada Pepe, hay un solo parmetro de entrada y
el array arg tiene un solo elemento. En este caso el programa nos va a dar un error porque la nica
variable que existe es arg [0], y al tratar de llamar a arg[1] nos va a dar error.

Veamos ahora qu ocurre si escribimos en la ventana DOS ParametrosDeEntrada Hola Java:

Administrador Smbolo del sistema


g
C:\Ejenplos>java ParametrosDeEntrada Hola Java
Cantidad de paranetros : 2
Hola
Jaua

C:\Ejenplos>

Comprobamos que el programa recibe 2 parmetros a travs de la lnea de comandos (es decir, los
introducimos a continuacin de la instruccin para ejecutar el programa). Estos dos parmetros son las
cadenas "Hola" y "Java", las cuales son capturadas en las variables del array de cadenas arg[0] y arg[1].
Estas variables se usan para imprimir los parmetros en pantalla. Esto se puede ver en el cdigo fuente
del programa. Por otro lado, con el atributo "arg.length" podemos saber cuntos parmetros se le han
pasado a nuestro programa. Tambin decir que hacemos uso de un nuevo smbolo: "+", que significa
"concatenar" la cadena "Cantidad de parmetros" con el valor del atributo arg.length (que es 2 en este
caso). El resultado es la cadena "Cantidad de parmetros : 2 ", que se imprime en la ventana DOS como
parte de la salida de nuestro programa.
El introducir parmetros al mismo tiempo que se invoca la ejecucin de un programa es una posibilidad
que admite Java a travs de la venta DOS. En otros lenguajes no es posible pasar parmetros de entrada
a un programa.

Prxima entrega: CU00512A

Ejercicios con arrays


unidimensionales en Java.
(CU00512A)
Seccin: Cursos
Categora: Lenguaje de programacin Java Nivel I
Fecha ltima actualizacin: 2010
Autor: Walter Sagstegui Lescano
Resumen:

Entrega n11 del curso Lenguaje de program acin Java Nivel I".

10

EJERCICIO:
Crea el cdigo de dos programas que cumplan las siguientes premisas:

a) Programa 1.
Declara un array tipo int (entero) denominado numerodecoches que contenga 24 variables. Declara
una variable tipo int (entero) que se llame r. Establece el valor de r en 2 y el valor de numerodecoches
para un localizador de valor r en 23. Procede a mostrar en pantalla un mensaje que indique cul es la
hora r y el nmero de coches para la hora r. Finalmente, modifica nicamente la asignacin de valor a r
de modo que en vez de 2 sea 21 y ejecuta de nuevo el programa.

b) Programa 2.
Sobre el programa anterior mantn el nmero de elementos de numerodecoches en 24. Declara dos
variables a y b de tipo int(entero). Establece a con valor 8, b con valor 4 y r con valor a dividido entre b .
Ejecuta el programa.

SOLUCIN:
El programa 1 ser el siguiente. Si lo ejecutamos obtendremos "El nmero de coches en la hora 2 fue
23". Si cambiamos r = 2 por r = 21 obtendremos "El nmero de coches en la hora 21 fue 23".

public class Programal {


public static void main(String arg[ ]) {
int[ ] numerodecoches = new int[24];
int r;
r = 2;
numerodecoches[r] = 23;
System.out.print("El nmero de coches en la hora " + r + " fue " + numerodecoches[r]);

}
}

Nota: Recordar que cuando declaramos un array de 24 elementos como int[ ] numerodecoches = new
los elementos del array que se crean son numerodecoches[0], numerodecoches[1] ... hasta
numerodecoches[23]. Tenemos por tanto 24 elementos (del 0 al 23) pero no existe la variable
numerodecoches[24] como puede ocurrir en otros lenguajes.

int[24]; ,

Nota: El smbolo "+" significa concatenacin y se usa para concatenar en este caso valores cadena con
variables que tienen un valor numrico. De este modo obtenemos una sola cadena que se imprime en
la pantalla DOS. Tambin recordar que numerodecoches[r] = 23 significa que estamos asignando el
nmero 23 a la posicin indicada por el valor que tenga r en su momento, siendo el valor mximo que
podra tener r el valor 23 y el valor mnimo 0. El uso de otros valores de r dara lugar a un error.
El programa 2 ser el siguiente. Ten en cuenta que el array numerodecoches tiene 24 elementos siendo
el primero el de localizador cero. El resultado va a ser igual que el del anterior programa, ya que r = 2
dado que 8/4 = 2. Por lo tanto se mostrar en pantalla "El nmero de coches en la hora 2 fue 23".

public class Programa2 {


public static void main(String arg[ ]) {
int[ ] numerodecoches = new int[24];
int a, b;
int r;
a = 8;
b = 4;
r = a / b;
numerodecoches[r] = 23;
System.out.print("El nmero de coches en la hora " + r + " fue " + numerodecoches[r]);

}
}

Prxima entrega: CU00513A

Arrays multidimensionales en
Java. (CU00513A)
Seccin: Cursos
Categora: Lenguaje de programacin Java Nivel I
Fecha ltima actualizacin: 2010
Autor: Walter Sagstegui Lescano
Resumen:

Entrega n12 del Curso Lenguaje de program acin Java Nivel I"

10

ARRAYS MULTIDIMENSIONALES
Tal y como explicamos en su momento, ser posible crear arrays con ms de una dimensin, pasando
de la idea de lista, vector o matriz de una sola fila a la idea de matriz de m x n elementos, estructuras
tridimensionales, tetradimensionales, etc. La sintaxis ser:

Tipo_de_variable[][]... [ ]

Nombre_del_array = new Tipo_de_variable[dimensin1][dimensin2]...[dimensinN];

Tambin podemos alternativamente usar esta declaracin:


Tipo_de_variable[][] ... [ ] Nombre_del_array;
Nombre_del_array = new Tipo_de_variable[dimensin1 ][dimensin2]...[dimensinN];

El tipo de variable puede ser cualquiera de los admitidos por Java y que ya ha sido explicado. Ejemplos
de declaracin e inicializacin con valores por defecto de arrays, usando todos los tipos de variables
Java, seran:
-

byte[][] edad = new byte[4][3];

short ][] edad = new short[4][3];

int[][] edad = new int[4][3];

long[][] edad = new long[4][3];

float[][] estatura = new float[3][2];

double[][] estatura = new double[3][2];

boolean[][] estado = new boolean[5][4];

char[][] sexo = new char[2][1];

String[][] nombre = new String[2][1];

La declaracin de una matriz tradicional de m x n elementos podra ser:

int[][] matriz = new int[3][2];


O alternativamente
int[][] matriz;
matriz = new int[3][2];

El nmero de elementos sera: 3 x 2 = 6, dnde 3 es el nmero de filas y 2 es el nmero de columnas.

Ahora procedemos a cargar la matriz con valores:


matriz[0][0] = 1;
matriz[0][1] = 2;
matriz[1][0] = 3;
matriz[1][1] = 4;
matriz[2][0] = 5;
matriz[2][1] = 6;
Hay que recordar ,que los elementos empiezan a numerarse por 0. As, la esquina superior izquierda de
la matriz ser el elemento [0][0] y la esquina inferior derecha ser el [2][1]. Hay que prestar atencin a
esto porque en otros lenguajes de programacin la numeracin puede empezar por 1 en vez de por 0.
Tambin se pueden cargar directamente los elementos, durante la declaracin de la matriz de la
siguiente manera:
int[][] matriz = {{1,2},{3,4},{5,6}};

donde {1,2} corresponde a la fila 1, {3,4} a la fila 2 y {5,6} a la fila 3, y los nmeros separados por coma
dentro de cada fila, corresponden a las columnas. En este caso, los nmeros (1, 3, 5) de cada una de las
filas corresponden a la primera columna y los nmeros (2, 4, 6) ataen a la segunda columna.
Para obtener el nmero de filas de la matriz, podemos recurrir a la propiedad "length" de los arrays, de
la siguiente manera:
int filas = matriz.length;

Para el caso del nmero de columnas sera de la siguiente forma :


int columnas = matriz[0].length;

Tambin Java nos permite la posibilidad de clonar una matriz, es decir, crear una matriz nueva a partir
de otra matriz, siguiendo esta sintaxis:
String[][] nuevaMatriz = matriz.clone();

donde clone() es un mtodo especial, que permite la clonacin de arrays de cualquier dimensin en
Java. De esta manera "nuevaMatriz" y "matriz" son 2 matrices distintas pero con los mismos valores.
Vamos a definir una matriz, a modo de ejercicio: queremos almacenar en una matriz el nmero de
alumnos con el que cuenta una academia, ordenados en funcin del nivel y del idioma que se estudia.
Tendremos 3 filas que representarn al Nivel bsico, medio y de perfeccionamiento y 4 columnas en las

que figurarn los idiomas (0 = Ingls, 1 = Francs, 2 = Alemn y 3 = Ruso). La declaracin de dicha matriz
sera:

int[][] alumnosfxniveleidioma = new int[3][4];

Podramos asignar contenidos de la siguiente manera:


alumnosfxniveleidioma[0][0] = 7
alumnosfxniveleidioma[0][1] = 14
alumnosfxniveleidioma[0][2]= 8
alumnosfxniveleidioma[0][3] = 3
alumnosfxniveleidioma[1][0] = 6
alumnosfxniveleidioma[1][1]= 19
alumnosfxniveleidioma[1][2] = 7
alumnosfxniveleidioma[1][3] = 2
alumnosfxniveleidioma[2][0] = 3
alumnosfxniveleidioma[2][1]= 13
alumnosfxniveleidioma[2][2] = 4
alumnosfxniveleidioma[2][3] = 1

Tambin, podramos asignar contenido de la siguiente forma, como ya se ha explicado anteriormente:


int[][] alumnosfxniveleidioma = {{7,14,8,3},{6,19,7,2},{3,13,4,1}};

La representacin grfica que podramos asociar a esta asignacin de datos sera esta matriz:

rz

14

3>

19

V3

13

1,

La organizacin de la informacin en matrices, nos generar importantes ventajas a la hora del


tratamiento de datos en nuestros programas.

Para terminar en cuanto a multidimensionalidad, veamos casos de declaraciones con ms de dos


dimensiones. Para ello volveremos al ejemplo del conteo de coches que ya hemos usado. La forma de
declarar esos array sera la siguiente:

Declaracin con Ja va
Duracin del conteo

Tipo de array
(nc es Nmero de coches)

Un da

A rra y de una dimensin (hora)

int[] nc = new int[24];

Varios das

A rra y de dos dimensiones

int[][] nc = new int[24][31];

(hora y da)
Varios meses

A rra y de tres dimensiones

int[][][] nc = new int[24][31][12];

(hora, da y mes)
Varios aos

A rra y de cuatro dimensiones

Int[][][][] nc = new int[24][31][12][2999];

(hora, da, mes y ao)


Varios siglos

A rra y de cinco dimensiones


(hora, da, mes, ao y siglo)

Int[][][][][] nc = new int[24][31][12][2999][21];

Veamos lo que sera un ejemplo de programa con array multidimensional, usando un tipo String.

public class MatrizAlumnos {


public static void main(String argQ) {
String[ ][ ] nombreAlumno = new String[5][25];
nombreAlumno[2][23] = Pedro Hernndez Gonzlez;
System.out.println( EI alumno nmero 24 del curso tercero se llama +nombreAlumno[2][23]);

El resultado del programa es la aparicin del mensaje "El alumno nmero 24 del curso tercero se llama
Pedro Hernndez Gonzlez".
En este ejemplo, [5] representa a los cursos. Hablamos de 5 cursos que son identificados con 0, 1, 2, 3,
4, por lo que [2] hace mencin al tercer curso;lo mismo podemos decir de [23], que corresponde al
alumno nmero 24. Hay que recordar que siempre en Java tenemos que contar el cero, ya que si no lo
hacemos podemos cometer errores.

Prxima entrega: CU00514A

Comentarios y herramientas
lgicas y matemticas en Java.
(CU00514A)
Seccin: Cursos
Categora: Lenguaje de programacin Java Nivel I
Fecha ltima actualizacin: 2010
Autor: Walter Sagstegui Lescano
Resumen:

Entrega n13 del Curso Lenguaje de program acin Java Nivel I"

10

INSERCIN DE COMENTARIOS EN EL CDIGO


Existen distintas posibilidades para insertar comentarios en el cdigo, tales como:

El signo / / comentario de una lnea: la presencia del signo //, transforma en comentario todo lo que se
encuentre a continuacin de l en una lnea. El signo // puede encontrarse al principio de una lnea, con
lo cual, nada de lo que aparezca en dicha lnea ser ejecutado, o bien, despus de una o varias
instrucciones que se encuentren en una lnea, con lo cual una parte de la lnea se ejecutar.

El signo / * .... */ comentario de varias lneas: la presencia del signo /* abre un comentario y todo lo
que escribamos a partir de ese signo, puede estar en una o varias lneas hasta indicar el cierre del
comentario con el signo */. El signo /* ... */ puede encontrarse en cualquier parte del programa por lo
que nada de lo que aparezca entre /* y */ ser ejecutado.

Ejem p lo 1:
public class Programa {
public static void main(String args[]) {
//Declara una variable
boolean seleccionado;
//Asigna contenido
seleccionado = true;
//Introduce espacio
System.out.println();
//Valor actual
System.out.println("El valor actual de seleccionado es " + seleccionado);
}
}

Ejem p lo 2:

public class Programa {


public static void main(String args[]) {
/* Declara una variable */
boolean seleccionado;
/* Asigna contenido */
seleccionado = true;
/* Introduce espacio */
System.out.println();
/* Valor actual */
System.out.println("El valor actual de seleccionado es "+ seleccionado);
}
}

Ejem p lo 3:

public class Programa {


public static void main(String args[]) {
boolean seleccionado; //Declara una variable
seleccionado = true; //Asigna contenido
System.out.println(); //Introduce espacio
System.out.println("El valor actual de seleccionado es "+ seleccionado); //Valor
actual
}
}

Ejem p lo 4:

public class Programa {


public static void main(String args[]) {
boolean seleccionado; //Declara una variable
seleccionado = true; /* Asigna contenido */
System.out.println(); // Introduce espacio
System.out.println("El valor actual de seleccionado es "+ seleccionado); /* Valor
Actual */
}
}

El ejemplo 1, corresponde a un programa con comentarios insertados a travs del signo //^comentarios
previamente situados a la lnea que comentan.
El ejemplo 2, es similar al caso anterior, pero se han creado los comentarios con los signos /* ... */.
En el ejemplo 3, los comentarios con el signo //, se sitan a continuacin de las instrucciones, en la
misma lnea.
Por ltimo, el ejemplo 4 combina el uso del signo / / con los signos /* ... */, separados los comentarios
de las instrucciones que se van a ejecutar.
Los criterios para insertar comentarios sern los que se estudian en los cursos de bases de la
programacin, debindose buscar que los comentarios aporten claridad a un programar. Los
comentarios son una parte importante de los programas, por lo que es conveniente cuidar su
estructuracin y contenidos. Dado que el signo de corchetes se usa muchas veces para indicar un
comentario cuando se plantea un algoritmo como pseudocdigo, podemos usar los corchetes detrs
del signo/* para "recordar" el carcter de comentario de dicho texto.
/*[Esto es un comentario detrs de un /*. El corchete no es estrictamente necesario pero podemos
ponerlo si queremos]*/

HERRAMIENTAS LGICAS Y MATEMTICAS EN JAVA


Java clasifica los operadores con que trabaja de la siguiente manera:
Operadores aritmticos: operadores utilizados para ejecutar clculos matemticos.
Operadores de comparacin: operadores utilizados para efectuar comparaciones.
Operadores de concatenacin: operadores utilizados para combinar cadenas de caracteres.
Operadores lgicos: operadores usados para realizar operaciones lgicas.

Operadores

Operadores de

O perador de

Operadores

Aritm ticos

comparacin

concatenacin

lgicos

(Multiplicacin)

(Menor que)

<

Operador &&
(And)

<=

Operador ||

(Suma)

(Menor o igual que)

(Or)

>

O p era d o r!

(Resta)

(Mayor que)

(Not)

>=

(Divisin)

(Mayor o igual que)

%
(Resto)

(Igual a)
=
(Distinto de)

La mayora de estos operadores nos resultarn conocidos, pues son comunes con otros lenguajes y se
estudian en los cursos de bases de la programacin. El operador + tiene cierto inters para concatenar
cadenas. Por ejemplo "Hoy puede" + "ser un gran da" equivale a "Hoy puede ser un gran da".

En cuanto a las funciones matemticas, las funciones disponibles vienen definidas en la clase Math y se
pueden consultar en la lista completa, disponible en la siguiente direccin oficial de Java:
http://download.oracle.com/avase/1.4.2/docs/api/ava/lang/Math.html

A continuacin, mostraremos el uso de las ms importantes:

Funciones

Significado

Ejemplo de uso

Resultado

abs

Valor absoluto

int x = Math.abs(2.3);

x = 2;

atan

Arcotangente

double x = Math.atan(1);

x = 0.78539816339744;

sin

Seno

double x = Math.sin(0.5);

x = 0.4794255386042;

cos

Coseno

double x = Math.cos(0.5);

x = 0.87758256189037;

tan

Tangente

double x = Math.tan(0.5);

x = 0.54630248984379;

exp

Exponenciacin neperiana

double x = Math.exp(1);

x = 2.71828182845904;

log

Logaritmo neperiano

double x = Math.log(2.7172);

x = 0.99960193833500;

pow

Potencia

double x = Math.pow(2.3);

x = 8.0;

round

Redondeo

double x = Math.round(2.5);

x = 3;

random

Nmero aleatorio

double x = Math.ramdom();

x = 0.20614522323378;

Matemticas

Destacar que las funciones matemticas, al pertenecer a la clase Math, se invocan siempre de la
siguiente manera: Math.funcion(argumentos).
Las funciones relacionadas con ngulos (atan, cos, sin, tan, etc.) trabajan en radianes. Por tanto, para
operar con grados, tendremos que realizar la conversin oportuna.
La funcin random,permite generar nmeros aleatorios en el rango ]0,1[. Por tanto el 0 y el 1 estn
excluidos.
La funcin exponenciacin neperiana o exponenciacin de e, matemticamente significa ex, que en Java
sera Math.exp(x),donde x es un nmero real y la base es la constante neperiana e = 2.7172...
La funcin logaritmo neperiano, matemticamente significa Ln x, que en Java correspondera a la
expresin Math.log(x).

La funcin potencia, matemticamente significa baseexponente, que en Java se convertira en


Math.pow(base,exponente),donde base y exponente son nmeros reales, por lo tanto, si queremos
obtener la raz cubica de 2,la instruccin sera Math.pow(2,0.333).
No hay una funcin directa para obtener la parte entera de un nmero real, pero para estos casos, se
puede obtener de la siguiente manera:

int x = (int)(8.7); --> x = 8;


int x = (int)(-8.7); --> x = -8;

Aclarar, que obtener la parte entera es distinto a redondear.

S i vas a tra baja r con constantes fsicas o m atemticas, te resultar de inters la instruccin
final para la declaracin de constantes. La ventaja de decla rar una constante en vez de una
variable, consiste en que la constante no puede va ria r en el transcurso del program a. Por tanto, se
impide que po r erro r pueda tener un valor no vlido en un momento dado. Las constantes facilitan
la documentacin del program a y lo hacen fcil de m odificar. Una declaracin tipo de constante
podra ser la siguiente:
final double pi = 3.141592653 58979;

Sin embargo, el propio Java tiene una constante propia para defin ir la constante matem tica PI:
public static final double PI;

El siguiente program a, m ostrar su uso en la conversin de un angulo sexagesim al a radianes.


public class Program a {
public static void m ain(String args[]) {
double sexagesim al = 30;
double radianes = M ath.PI/180 * sexagesim al;
System .out.println("Angulo en radianes : "+radianes);
}
}

Prxima entrega: CU00515A

Generacin de nmeros aleatorios


en Java. (CU00515A)
Seccin: Cursos
Categora: Lenguaje de programacin Java Nivel I
Fecha ltima actualizacin: 2010
Autor: Walter Sagstegui Lescano
Resumen:

Entrega n14 del Curso Lenguaje de program acin Java Nivel I"

10

GENERACIN DE NMEROS ALEATORIOS


La clase Random proporciona un generador de nmeros aleatorios. Es ms flexible que la funcin
random de la clase Math, que vimos en funciones matemticas.
La generacin de nmeros aleatorios adquiere gran relevancia para un programador, pudiendo tener
distintas aplicaciones como:

Construccin preliminar de programas, en los que a falta de datos definitivos, introducimos datos
aleatorios.

Simulacin de procesos aleatorios (nmero resultante de tirar un dado, eleccin de un color por
parte de una persona, nmero premiado en un sorteo de lotera, cantidad de personas que entran
a un supermercado en una hora...)

Verificacin de programas, y en particular lo que en verificacin de algoritmos se conoce como


verificacin aleatoria (probar el programa con distintos supuestos aleatorios).

Otras aplicaciones.

Conviene recordar que "aleatorio" no puede confundirse con "cualquier cosa", "descontrol", "incierto",
"impredecible", etc. Usaremos el vocablo "aleatorio", ms en el sentido de "no predeterminado" que
el de "no predecible", ya que en general, vamos a definir qu tipo de resultado queremos obtener y en
qu rango de valores debe estar. Vamos a imaginar que Java genera nmeros aleatorios, como si fuera
un robot lanzador de dardos muy preciso (robot rnd). De este modo, cuando se le dice que comience a
tirar dardos en distintas posiciones, repite siempre los lugares. Por ejemplo, si la diana est marcada
con nmeros, cada vez que le decimos que tire, genera la misma secuencia: 7, 5, 6, 3, etc. Cmo
conseguir convertir este proceso predefinido en aleatorio? Simplemente, poniendo a girar la diana
(mayordomo randomize), en este caso, a una velocidad que depende del segundo del da en que nos
encontremos. As pues, el proceso lo dividimos al decirle al mayordomo que ponga a girar la diana y al
indicarle al robot que dispare. Bueno, un poco simple, pero para qu complicarnos? Veamos los pasos
sintcticos a emplear para crear una secuencia de nmeros aleatorios:

1. Proporcionar a nuestro programa informacin acerca de la clase Random. Al principio del programa
escribiremos la siguiente sentencia:
Import java.util.Random;

2. Crear un objeto de la clase Random:


La clase Random dispone de dos constructores, para crear un objeto. El primer constructor es:
Random rnd = new Random();
crea un generador de nmeros aleatorios cuya semilla es inicializada automticamente, en base al
tiempo actual. Esto conlleva que en cada ejecucin la semilla cambie, es decir, que la secuencia de
nmeros aleatorios que se genera en cada ejecucin siempre ser diferente.

El segundo constructor es:


Random rnd = new Random(ncalzar_semlla);
nos permte ncalzar la semlla manualmente con un nmero entero cualquera. S este nmero es el
msmo en cada ejecucin, la secuenca de nmeros aleatoros que se genera en cada ejecucn ser
gual.

3. Llamar a una de las funciones miembro que generan un nmero aleatorio:


Hay cuatro funciones miembro dferentes que generan nmeros aleatoros:

Funcin miembro

Descripcin

rnd.nextInt()

Nmero aleatoro entero de tpo nt

rnd.nextLong()

Nmero aleatoro entero de tpo long

2-64 y 264

rnd.nextFloat()

Nmero aleatoro real de tpo float

[0,1[

rnd.nextDouble()

Nmero aleatoro real de tpo double

[0,1[

Rango
2

32
2
y

ro

Cas sempre, para generar un nmero aleatorio, se usa la funcin miembro rnd.nextDouble().El valor
devuelto es de tpo double. Un aspecto mportante a tener en cuenta, es que el valor devuelto se
encuentra en el rango mayor o gual a cero y menor a 1. Es decr, el nmero devuelto puede ser cero
pero no puede ser uno.
En el sguente ejemplo mostraremos todo lo expresado hasta este momento:
mportjava.til. Random;
public class Programa {

public static void main(String arg[]) {


Random rnd = new Random();
System.out.prmtlnf'Nmero aleatorio real entre [0 ,1 [: "+rnd.nextDouble());

}
J ____________________________________________________________________________
En el caso de necestar nmeros aleatoros enteros en un rango determnado, podemos trasladarnos a
un ntervalo dstnto, smplemente multplcando, aplcando la sguente frmula general:

(int) (rnd.nextDouble() * cantidad_nmeros_rango + trmino_inicial_rango)

donde (nt) al nco, transforma un nmero decmal double en entero int, elmnando la parte decmal.

Por ejempIo, si deseamos nmeros enteros comprendidos entre eI rango [0,99], incIuidos Ios extremos,
Ia frmuIa quedara de Ia siguiente manera:
(int)(rnd.nextDoubIe() * 100 + 0);

(int)(rnd.nextDoubIe() * 100);

100 es Ia cantidad de nmeros enteros en eI rango [0,99] y 0 es eI trmino inicia! deI rango.
En eI caso de querer nmeros aIeatorios enteros comprendidos entre [1,6], que son Ios Iados de un
dado, Ia frmuIa quedara as.
(int)(rnd.nextDoubIe() * 6 + 1);
6 es Ia cantidad de nmeros enteros en eI rango [1,6] y 1 es eI trmino iniciaI deI rango.
A continuacin, daremos dos programas compIetos , como ejempIo para expIicar eI cambio de semiIIa
en Ia generacin de nmeros aIeatorios:
importjava.utiI.Random;
public class Programa {

public static void main(String arg[ ]) {


Random rnd = new Random();
System.out.printIn("Primera secuencia."+"\n");
System.out.printIn(rnd.nextDoubIe());
System.out.printIn(rnd.nextDoubIe());
System.out.printIn(rnd.nextDoubIe());
System.out.printIn("");
System.out.printI n("Segunda secuencia."+"\n");
System.out.printI n(+rnd.nextDoubIe());
System.out.printI n(rnd.nextDoubIe());
System.out.printI n(rnd.nextDoubIe());

}
}
SaIida
Primera secuencia.
0.477306442553755
0.6150676961227264
0.8217343290939352
Segunda secuencia.
0.6607147048099735
0.10104896936581531
0.2628223838639594

En este primer ejempIo, mostramos dos secuencias de tres nmeros aIeatorios, Ios cuaIes estn en eI
rango [0,1[, incIuido eI cero pero excIuido eI uno. Vemos que Ios nmeros aIeatorios en Ias dos

secuencias, son distintos, ya que en realidad, es una sola secuencia, que tiene como punto de partida la
misma semilla. A continuacin, lo compararemos con el siguiente ejemplo, donde utilizaremos la
funcin "setSeed(semilla_nueva)", para el cambio de semilla, funcin resaltada con un comentario
flecha:

importjava.util.Random;
public class Programa {

public static void main(String arg[ ]) {


Random rnd = new Random();
rnd.setSeed(3816); / / ^
System.out.println("Primera secuencia."+"\n");
System.out.println(rnd.nextDouble());
System.out.println(rnd.nextDouble());
System.out.println(rnd.nextDouble());
System.out.println("");
rnd.setSeed(3816); / / ^
System.out.println("Segundasecuencia."+"\n");
System.out.println(rnd.nextDouble());
System.out.println(rnd.nextDouble());
System.out.println(rnd.nextDouble());

}
}
Salida
Primera secuencia.
0.778983378859943
0.36474001734926775
0.9579995205698871
Segunda secuencia.
0.778983378859943
0.36474001734926775
0.9579995205698871

Observamos que las dos secuencias estn formadas por los mismos nmeros aleatorios, ya que a ambas
secuencias, les precede la funcin de cambio de semilla "rnd.setSeed(3816)". En dicha instruccin, las
dos funciones

aparecen inicializadas a propsito con la misma semilla "3816", pudiendo haberse

elegido cualquier otro nmero, pero con la peculiaridad de que la semilla tiene que ser igual en ambas
funciones para producir dos secuencias con los mismos nmeros aleatorios.

Prxima entrega: CU00516A

Ejercicios con nmeros aleatorios


y pedir datos por consola en Java.
(CU00516A)
Seccin: Cursos
Categora: Lenguaje de programacin Java Nivel I
Fecha ltima actualizacin: 2010
Autor: Walter Sagstegui Lescano
Resumen:

Entrega n15 del Curso Lenguaje de program acin Java Nivel I"

10

EJERCICIO
Crear el cdigo de un programa en el que se declaran tres variables tipo float a, b y c, cuyo valor se
muestra en pantalla y debe estar comprendido entre cero y 10, excluido el diez.

Solucin:
import java.util.Random;
public class Programa {
public static void main(String arg[]) {
float a, b, c;
Random rnd = new Random();
a = (float)(rnd.nextDouble() * 10);
b = (float)(rnd.nextDouble() * 10);
c = (float)(rnd.nextDouble() * 10);
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
}

Comentario: la instruccin siguiente (rnd.nextDouble() * 10), genera un valor de tipo doble y dado que
la variables a, b, y c han sido declaradas como float al inicio del programa, se ha procedido a hacer la
conversin a un valor de tipo float ,a travs de la instruccin (float).

EJERCICIO
Crear el cdigo de un programa que genera tres nmeros enteros aleatorios a, b, c, comprendidos entre
65 y 90, ambos inclusive. Los mostraremos en pantalla.

Solucin:
import java.util.Random;
public class Programa {
public static void main(String arg[]) {
int a, b, c;
Random rnd = new Random();
a = (int)(rnd.nextDouble() * 26 + 65)
b = (int)(rnd.nextDouble() * 26 + 65)
c = (int)(rnd.nextDouble() * 26 + 65)
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
}

Comentario: Si quieres puedes usar otra frmula. Puedes escribir con igual resultado, lo siguiente:
a = (int)(rnd.nextDouble() * (90 - 65 + 1) + 65);
b = (int)(rnd.nextDouble() * (90 - 65 + 1) + 65);
c = (int)(rnd.nextDouble() * (90 - 65 + 1) + 65);

CONCATENACIN DE RDENES Y ORDENACIN SIM BLICA DEL CDIGO


La escritura de rdenes con Java se realiza con los criterios que ya hemos visto con anterioridad: las
instrucciones pueden escribirse una debajo de otra, en lneas independientes o bien en una misma
lnea, pero siempre una instruccin termina en punto y coma. As estos dos cdigos resultan
equivalentes:

Cdigo versin 1:

public class Programa {


public static void main(String arg[]) {
int a, b, c, d;
a = 3; b = 2; c = a * b; d = (int)Math.pow(c,2);
System.out.println(d);
}
}

Cdigo versin 2 :

public class Programa {


public static void main(String arg[]) {
int a, b, c, d;
a = 3;
b = 2;
c = a * b;
d = (int)Math.pow(c,2);
System.out.println(d);
}
}

La sangra, al escribir cdigo, la estableceremos normalmente a travs del tabulador. El primer nivel de
sangrado, corresponder a una primera pulsacin del tabulador, el segundo nivel, a dos pulsaciones y
as sucesivamente.

PEDIR E INTRODUCIR DATOS POR CONSOLA


La siguiente instruccin es la forma ms simple de introducir datos por teclado, siendo un carcter el
dato ms simple que se puede introducir por teclado.
char caracter = (char) System.in.read();

Explicar que en Java, System.out, representa la pantalla como salida, por lo tanto cuando escribimos
esta instruccin System .out.println(argumento), el mensaje que le pasamos como argumento al
mtodo println, se imprime en la pantalla. Cierta similitud, sucede con System.in, que representa al
teclado como entrada de datos. Cuando escribimos la instruccin System.in.read(), estamos haciendo
la entrada de un carcter por teclado a travs del mtodo read , pero como tipo int, por lo que se hace
la conversin a un carcter con la instruccin (char).
Como podemos comprobar, con el mtodo read, es muy incmodo estar leyendo por teclado letra a
letra, por ello, para poder leer una cadena completa, emplearemos el siguiente cdigo:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String cadena = br.readLine();

Empezaremos explicando System.in, donde in (input) es un objeto de entrada de datos por teclado,
perteneciente a la clase System. En trminos prcticos, diremos que System.in, representa el teclado
como entrada de datos.
La instruccin new InputStreamReader(argumento), significa que estamos creando un objeto de la
clase InputStreamReader, es decir, estamos estableciendo y abriendo un flujo de entrada de datos y al
pasar como argumento System.in, indicamos que el flujo de entrada de datos es a travs del teclado.
La instruccin BufferedReader br = new BufferedReader(argumento), crea un objeto que se recibe en
la variable br de la clase BufferedReader, y a travs del objeto br tenemos acceso al mtodo readLine().
Esto se ve plasmado en la instruccin br.readLine(), que se constituye en un mtodo especial, para leer
una

cadena

travs

del

flujo

creado

cuando

recibe

el

argumento

el

objeto

new

InputStreamReader(System.in) que fue explicado con anterioridad.


Ahora explicaremos la instruccin import java.io.*;
Dado que hemos ido mencionando una serie de clases nuevas, como: InputStreamReader,
BufferedReader, luego explicaremos IOException. Todas estas clases, necesitan ser llamadas para ser
usadas en un programa. La forma en que se llaman es como sigue:
import java.io. InputStreamReader;
import java.io. BufferedReader;
import java.io. IOException;
Pero la forma prctica de indicar con una sola instruccin y referirnos a todas ellas, es con un asterisco.
import java.io.*;
Los mtodos read (leer un carcter) y readLine (leer una cadena), usados para dar entrada de datos por
teclado en consola, tienen la particularidad de poder dar lugar a excepciones o errores. Una excepcin
significa un error de lectura por teclado, susceptible de ocurrir por ejemplo si se est esperando un
nmero y se introduce una letra. Por ello es obligatorio cuando se usen estos mtodos, introducir

instrucciones para la gestin de excepciones (errores). La gestin de excepciones se hace usando


instrucciones try/catch o usando throws. Esto lo explicaremos con dos ejemplos mas abajo.
Explicar tambin que cuando hagamos uso del mtodo readLine, supone que estamos introduciendo
una cadena (texto) por teclado. Si introducimos un nmero, ste se introduce como un valor cadena
(texto), por ejemplo "2.3" como texto. Para usar esa cadena como nmero necesitamos convertirla a un
valor numrico, o sea 2.3, para poder realizar operaciones matemticas con este nmero. A
continuacin mostraremos la instruccin que hace esto:
cadena = br.readLine();
double nmero = Double.parseDouble(cadena);

o en su lugar esta otra instruccin que hace lo mismo pero ms compacta.


double nmero = Double.parseDouble(br.readLine());

donde el mtodo parseDouble(argumento) pertenece a la clase Double y lo que hace es devolver el


valor 2.3 como nmero a partir de un valor en forma de cadena "2.3" que recibe como argumento.
Para otros tipos de datos numricos (byte, short, int, long, float), tenemos la siguiente sintaxis de
conversin. Su explicacin es similar al mtodo parseDouble, slo cambia el tipo de dato que devuelve.
Sirva como ejemplo al caso, que parseByte devuelve a partir de una cadena un byte y as
sucesivamente:

byte nmero = Byte.parseByte(br.readLine());


short nmero = Short.parseShort(br.readLine());
int nmero = Integer.parseInteger(br.readLine());
long nmero = Long.parseLong(br.readLine());
float nmero = Float.parseFloat(br.readLine());

EJEMPLOS: PEDIR DATOS Y GESTIONAR LOS POSIBLES ERRORES CON TRY-CATCH O THROWS
Seguidamente, daremos dos ejemplos de cmo leer dos nmeros por consola, que inicialmente se leen
por teclado en formato cadena y luego lo convertiremos en nmeros reales de tipo double, para
posteriormente sumarlos y mostrar el resultado en la pantalla de consola.

import java.io.*;
public class Programa {
public static void main(String a rg []){
BufferedReaderbr = new BufferedReader(new InputStreamReader(System.in));
double n1 = 0.0, n2 = 0.0, s = 0.0;
tiy {
System.out.print("Ingresar nmero 1 ? "); n i =
Double.parseDouble(br.readLine());
System.out.print("Ingresar nmero 2 ? "); n2 =
Double.parseDouble(br.readLine());
} catch(IOException e) { System.out.println(Error en datos introducidos); }
s = n i + n2;
System.out.println("Suma : " + s);
}
}

En este ejemplo, pedimos ingresar dos nmeros por teclado. Si por error, el usuario ingresa "a2" en
lugar de "12" como cadena, es obvio que al tratar de convertirlo en un nmero real de tipo double,
aparezca un error, ya que "a2" empieza por una letra y no es un nmero. Si esto ocurre en Java decimos
que ha ocurrido una excepcin, la cual se maneja con la clase IOException, que significa manejo de
excepciones de entrada y salida. Como se ve en el ejemplo, se ha producido un error de entrada, por lo
que se ejecuta la instruccin catch (lOException e), que indica que es una excepcin de entrada y salida,
dando como resultado el mensaje que se muestra en pantalla de la consola:"Error en datos
introducidos" .De esta manera, se sabe con el mensaje cul fue el error y el programa termina en forma
normal sin bloquearse. La otra manera de manejar excepciones, es como se muestra en el siguiente
programa:

import java.io.*;
public class Programa {
public static void main(String arg[]) throws IOException {
BufferedReaderbr = new BufferedReader(new InputStreamReader(System.in));
double n i = 0.0, n2 = 0.0, s = 0.0;
System.out.print("Ingresar nmero 1 ? "); n i = Double.parseDouble(br.readLine());
System.out.print("Ingresar nmero 2 ? "); n2 = Double.parseDouble(br.readLine());
s = n i + n2;
System.out.println("Suma : " + s);
}
}

La diferencia radica en que hemos cambiado try/catch y en su lugar usamos throws. De esta manera,
throws

IOException

maneja la excepcin como try/catch, pero sin avisar al usuario con un mensaje de

cul ha sido el error. Tampoco se produce un bloqueo del programa por el error (programa colgado),
sino que termina aparentemente de forma correcta, sin saber el usuario qu es lo que realmente ha
ocurrido.

Indicar tambin, que esta forma de manejar los errores por parte de Java a travs de excepciones, es
muy til en otros casos, como por ejemplo, una divisin entre cero, que originara un bloqueo del
programa. Sin embargo, si se pone el manejo de excepciones de la siguiente manera:
try {
System.out.println("Resultado : " + 5/0);
} catch(ArithmeticException e) {System.out.println("Error divisin entre cero") }
se captura el error con la excepcin ArithmeticException, que es divisin entre cero. Se muestra el
mensaje del error producido y el programa continua, pero sin bloquearse por el error.
En resumen, las excepciones son una manera que tiene Java de capturar los errores producidos por
datos de entrada incorrectos, que podran producir bloqueos, abortando o colgando el programa.
Gracias al manejo de excepciones podemos, por el contrario, hacer que estos programas terminen
correctamente, mostrando al usuario un mensaje que le indica el tipo de error cometido.

Prxima entrega: CU00517A

Ingresar datos con un control


visual en Java. JTextField y getText
(CU00517A)
Seccin: Cursos
Categora: Lenguaje de programacin Java Nivel I
Fecha ltima actualizacin: 2010
Autor: Walter Sagstegui Lescano
Resumen:

Entrega n15 del Curso Lenguaje de program acin Java Nivel I"

10

Ingresar datos con Un con.ro, visua, en Java

3PPENDER W OGRAMAR B

INSTRUCCIN PEDIR CON JAVA. EL JTEXTFIELD. LA FUNCIN GETTEXT.


La forma de pedir datos con Java a travs de un control visual, resultar un tanto distinta a la que hemos
trabajado anteriormente. Una peticin de datos, se realizar a travs de un objeto prefabricado de la
clase J T extField.
Mostraremos el siguiente cdigo y la salida respectiva de entrada de datos, con un control visual en
Java, y luego lo explicaremos y comentaremos:

/ / ( 1 ) PAQUETE
import java.aw t.*;
import javax.sw ing.*;
/ / ( 2 ) FORMULARIO
public cla ss Program a extends JFram e {
/ / ( 3 ) CO N TRO LES DEL FORMULARIO
JPanel jpanel = (JPanel) this.getContentPane();
JTextField jtextfield = new JTextField();
/ / ( 4 ) CO NSTRUCTO R DEL FORMULARIO
public Program a() {
/ / ( 5 ) PRO PIED A D ES DEL CONTENEDOR
jpanel.setLayout(null);
jpanel.setBackground(Color.lightGray);

/ / ( 6 ) PRO PIED A D ES DE LO S CO NTRO LES


jtextfield.setBounds(new Rectangle(25, 15, 250, 21));
jtextfield.setText("Realizada modificacin del JTextField");
jtextfield.setEditable(false);
jtextfield.setHorizontalAlignment(JTextField.LEFT);

/ / ( 7 ) A D IC IO N DE LO S CO N TRO LES A L CONTENEDOR


jpanel.add(jtextfield, null);
/ / ( 8 ) PRO PIED A D ES DEL FORMULARIO
setSize(300,150);
setTitle("Form1");
setVisible(true);

}
/ / ( 9 ) METODOS DEL FORMULARIO
public static void m ain(String arg[]) {
new Programa();
}
}

h o rm l

j-

R e a liz a d a m od ificacin del JT e xtF ie ld

J ;| X ;

Ahora explicaremos en detalle el cdigo. Para su mejor entendimiento lo hemos numerado y lo


asumiremos como una secuencia de pasos a seguir para construir una estructura visual en Java. Para
este ejemplo, hemos tomado la entrada de datos a travs de un control visual, pero el tratamiento ser
similar para cualquier otro control visual como veremos en otros artculos.

(1) Paquete
En este punto, se usa la sentencia import, para declarar los paquetes que emplearemos en nuestro
programa. Explicar, que un paquete es algo similar a una ruta, donde se encuentran las clases que
utilizaremos en el programa. En nuestro caso, JTextField, JPanel, JFram e, son clases que pertenecen
al paquete javax.swing , as como la clase Color pertenece al paquete java.awt. Los paquetes forman
parte de java, lo nico que hacemos nosotros es cargarlos para poder usarlos en nuestro programa.

(2) Formulario

Program a extends JFram e. La idea de esta sentencia, es hacer que nuestro programa tenga el
comportamiento de un formulario (ventana Windows) y para ello debemos heredar (extends) de
JFrame, sus particularidades. JFrame, es una clase que tiene todas las caractersticas propias de una
ventana en Windows. A partir de este punto, nuestro programa deja de ser un programa de consola
DOS y pasa a ser un programa visual tipo ventana Windows.

(3) Controles del formulario


Aqu, se crean los objetos de los controles visuales que se mostrarn en el formulario. El primer
objeto que vemos es jpanel, mencionar, que es un nombre cualquiera y pertenece a la clase JP a n e l .
EL objeto jpanel, es lo que se llama un contenedor, que como su propio nombre indica, va a contener
a los dems controles visuales. Es decir, que los controles visuales no se ponen directamente en el
formulario, sino en el contenedor, colocado ste encima del formulario. El siguiente objeto es
jtextfield, perteneciente a la clase JTextField; este objeto jtextfield, contiene el control visual para
pedir un dato al usuario y tiene la apariencia de una caja para ingresar texto (textbox).

(4) Constructor del formulario


Si se observa, es una estructura igual a un mtodo, que se inicia con una apertura de llave
y
termina con la clausura de la llave "}". Entre dichas llaves se procede a dar a los objetos, que
representan a los controles visuales, los atributos. Tambin aade los controles visuales al
contenedor, adems de establecer los atributos del formulario. Con ms detalle, veremos todo esto
en los siguientes puntos.

(5) Propiedades del contenedor del formulario


Lo que es un contenedor, ya fue explicado en el punto 3. Ahora aqu, explicaremos las siguientes
instrucciones relacionadas al contenedor:

jpanel.setLayout(null). Esta instruccin significa, que al pasarle null como parmetro al mtodo
setLayout, nuestro contenedor, representado a travs del objeto jpanel, no administrar la forma de

colocar los controles en el contenedor, sino que dejar que esa labor la realice el programador a travs
de coordenadas.

jpanel.setBackground(Color.lightGray). Al pasarse Color.lightGray, como parmetro del mtodo


setBackground, le decimos al contenedor, representado en el objeto jpanel, que tome un color de
fondo gris suave. Ahora, si quisiramos usar otro color de fondo, como el color verde, usaramos el
parmetro Color.green, y de igual manera para otros colores.

(6) Propiedades de los controles.


En este punto, estableceremos a travs de propiedades, la apariencia de nuestros controles visuales. En
este ejemplo, el control visual ser una caja de texto para ingresar datos, representados en el objeto

jtextfield, para lo cual explicaremos las instrucciones siguientes:


.- jtextfield.setBounds(new Rectangle(25, 15, 250, 21)). Cada uno de los valores del parmetro
(25,15,250,21) es igual a (x,y,width,height), donde x,y, es la coordenada en la que se ubica el control,
dentro del contenedor del formulario. Width es el ancho que tendr el control, o sea, 250 pixeles y
height sera la altura, en este caso de 21 pxeles.

.- jtextfield.setText("Realizada modificacin del JTextField"). En esta instruccin, queda claro que la


cadena "Realizada modificacin del JTextField", que se le pasa como parmetro al mtodo setText,
aparece dentro de la caja de texto durante la ejecucin del programa.

.- jtextfield.setEditable(false). Si esta instruccin, est establecida en true, permite que se pueda


escribir sobre el JTextField. Si est establecida en false, impide que el usuario pueda modificar el
contenido del JTextField.

.- jtextfield.setH orizontalA lignm ent(JTextField.LEFT). El parmetro LEFT, permite que el texto


en la caja de texto, se alinee a la izquierda, el parmetro CENTER al centro y el RIGHT a la derecha.

(7) Adicin de los controles al contenedor

.- jpanel.add(jtextfield, null). El mtodo add pertenece a la clase Jpanel. Este mtodo, es usado para
aadir un control al contenedor, representado con el objeto jpanel. El primer parmetro, el objeto
jtextfield, se aade al contenedor y el segundo parmetro, null, indica que la posicin, dnde colocar el
controlador jtextfield dentro del contenedor, ser determinado por el programador, a travs de
coordenadas que fueron explicadas en el punto 5 y 6.

(8) Propiedades del formulario


Un formulario tiene una apariencia visual por defecto, por ejemplo el tamao, el color de fondo, entre
otros. Estas propiedades, las podemos cambiar, a travs de una serie de mtodos, como los siguientes:

.- setSize(300,150). Ubica la esquina superior izquierda del formulario en la pantalla, en la coordenada


(300,150)=(x,y)=(columna,fila).
.- setTitle("Form1"). La cadena "Form1",

como parmetro del mtodo setTitle, significa que se

establecer como ttulo del formulario la cadena "Form l".

.- setVisible(true). Este parmetro true, del mtodo setVisible, determina que el formulario sea visible
en la pantalla, ya que si ponemos false, el formulario est en la pantalla de forma invisible.

(9) Mtodos del formulario


En este punto se definen los mtodos que se necesitan para realizar las tareas que disean el
formulario. Tambin es el lugar del mtodo main, que hace que nuestra clase Programa se pueda
ejecutar, ya que si dejamos de poner el mtodo main, no podr ejecutarse, porque dentro de este
mtodo, es dnde creamos un objeto del formulario, a travs de la instruccin new Programa (). Por
tanto debe quedar claro que el formulario se crea siempre y cuando creemos un objeto de la clase

Programa, lo cual declaramos como new Programa();.

LA FUNCIN GETTEXT
El contenido que introduce un usuario a travs de un JTextField, tiene carcter de texto. Para trasladar
dicho contenido a una variable, se usa la funcin getText. La sintaxis a emplear es:

String cadena = jtextfield.getText();

Si deseamos convertir el valor retornado por la instruccin jtextfield.getText(), en forma de texto, que
se recibi en la variable cadena, a un valor en forma de nmero, la sintaxis es la siguiente:

float a = Float.parseFloat(cadena);

Esto supone, que la variable a, que ha sido definida como tipo float, adopta el contenido numrico del
JTextField.
La funcin getText, no elimina los espacios en blanco, ni los tabuladores ni los avances de lnea. Para
suprimirlos, podemos aplicar el ejemplo siguiente:
String cadena = "

38205

";

String cadenalimpia = cadena.trim(); //Devuelve "38205" como cadena


float a = Float.parseFloat(cadenalimpia); //Devuelve 38205 como nmero real

Otra form a relevante de pedir datos con Java, consiste en el uso de ventanas
de dialogo de peticin de datos (JOptionPane.showInputDialog). Cuando se invoca la
funcin JOptionPane.showInputDialog, se despliega una ventana independiente, con un
mensaje definido de solicitud de datos al usuario, que dispone de una caja de texto
asociado para responder y de botones para aceptar o cancelar. La sintaxis es:
String s = JOptionPane.showInputDialog("Introduzca un nmero","Introduccin nmero");
donde "s" es una variable, que toma el valor que haya introducido el usuario en forma de
cadena.

Te animamos a que, valindote de los ejemplos que hemos visto, crees tus propios programas de
prueba y veas por t mismo los distintos formatos de presentacin y resultados que se pueden obtener.

Prxima entrega: CU00518A

Instruccin pedir en Java con


JtextArea y mostrar con JLabel.
(CU00518A)
Seccin: Cursos
Categora: Lenguaje de programacin Java Nivel I
Fecha ltima actualizacin: 2011
Autor: Walter Sagstegui Lescano
Resumen:

Entrega n16 del Curso Lenguaje de program acin Java Nivel I"

11

INSTRUCCIN PEDIR CON JAVA. JTextArea


JTextArea es un control para pedir varias lneas de texto, que a diferencia de JTextField, visto en el
artculo anterior, slo nos permita ingresar una lnea de texto. Para mostrar su uso, recurriremos a la
misma estructura visual bsica que ya hemos utilizado anteriormente y que reproducimos en el
siguiente cdigo:

/ / ( 1 ) PAQUETE
import java.awt.*;
import javax.sw ing.*;
/ / ( 2 ) FORMULARIO
public cla ss Program a extend s JFram e {
/ / ( 3 ) CO N TRO LES DEL FORMULARIO
JPanel jpanel = (JPanel) this.getContentPane();
JTextArea jtextarea = new JTextArea();
/ / ( 4 ) CO NSTRUCTO R DEL FORMULARIO
public Program a() {
/ / ( 5 ) PRO PIED A D ES DEL CONTENEDOR
jpanel.setLayout(null);
jpanel.setBackground(Color.lightGray);

/ / ( 6 ) PRO PIED A D ES DE LO S CO NTRO LES


jtextarea.setBounds(new Rectangle(25, 15, 250, 21));
jtextarea.setText(""Esto es un control \r\n JTextArea \r\n de varias lneas"");
jtextarea.setEditable(false);

/ / ( 7 ) A D ICIO N DE LO S CO N TRO LES A L CONTENEDOR


jpanel.add(jtextarea, null);
/ / ( 8 ) PRO PIED A D ES DEL FORMULARIO
setSize(300,150);
setTitle("Form1");
setVisible(true);

}
/ / ( 9 ) METODOS DEL FORMULARIO
public static void main(String arg[]) {
new Programa();
}
}

Esto es un control
JTextArea
de varias lneas

El cdigo en todos sus detalles, fue explicado en el artculo anterior. Slo aadir, que en lugar del
control JTextField estamos usando el control JtextArea. Al tratarse de un control para ingresar un texto
de varias lneas, la forma de cambiar de lnea es a travs de los caracteres de escape \r\n, donde \r
significa "ir al inicio de la lnea" y \n significa "cambio de lnea". Esto se puede observar en la instruccin
siguiente:

jtextarea.setText(""Esto es un control \r\n JTextArea \r\n de varias lneas"");


El mtodo setText, muestra el texto en el control JTextArea.
Indicar que si deseamos capturar el texto ingresado en un control JTextArea se puede usar el mtodo

getText, igual que para el control JTextField. Se utiliza de la siguiente manera:


String s = jtextarea.getText().
String s = jtexfield.getText().

INSTRUCCIN MOSTRAR CON JAVA. JLabels


Un JLabel sirve para insertar etiquetas que el usuario no podr modificar en un formulario. Ejemplo:

/ / ( 1 ) PAQUETE
import java.aw t.*;
import javax.sw ing.*;
/ / ( 2 ) FORMULARIO
public cla ss Program a extend s JFram e {
/ / ( 3 ) CO N TRO LES DEL FORMULARIO
JPanel jpanel = (JPanel) this.getContentPane();
JLabel jlabel = new JLabel();
JTextField jtextfield = new JTextField();
/ / ( 4 ) CO NSTRUCTO R DEL FORMULARIO
public Program a() {
/ / ( 5 ) PRO PIED A D ES DEL CONTENEDOR
jpanel.setLayout(null);
jpanel.setBackground(Color.lightGray);
/ / ( 6 ) PRO PIED A D ES DE LO S CO NTRO LES
jlabel.setBounds(new Rectangle(5, 15, 220, 21));
jlabel.setText("Introduzca su peso en kgs por favor");
jtextfield.setBounds(new Rectangle(225, 15, 80, 21));

/ / ( 7 ) A D IC IO N DE LO S CO N TRO LES A L CONTENEDOR


jpanel.add(jlabel, null);
jpanel.add(jtextfield, null);
/ / ( 8 ) PRO PIED A D ES DEL FORMULARIO
setSize(300,150);
setTitle("Form1");
setVisible(true);

}
/ / ( 9 ) METODOS DEL FORMULARIO
public static void m ain(String arg[]) {
new Programa();
}
}

El resultado que obtendremos es algo as:

En cuanto a las propiedades de los JLabels, su manejo es bsicamente igual que el de los JTextField.
Mostraremos a continuacin una serie de mtodos propios de un Jlabel. Estos mtodos se usan para
modificar las propiedades de los JLabels. Algunas estn plasmadas en el ejemplo mostrado arriba y
otras no. Vamos a dar ejemplos para un uso adecuado:

jlabel.setFont(new java.awt.Font("Dialog", 1, 14)). El mtodo setFont se usa para cambiar la fuente


de letra a emplear. Si prestamos atencin, se le pasa el objeto new Java.awt.Font("Dialog",1,14) , que
representa a la fuente de letra. El valor "Dialog" que se pasa como argumento es el nombre de la
fuente, que podemos cambiar a cualquier otro tipo de fuente como "Verdana", "Arial" etc. El valor 1
indica el estilo negrita para la fuente, podemos cambiarla a 2 (estilo normal) o 3 (estilo cursiva). El valor
14 se refiere al tamao de la letra que podemos tambin cambiar a nuestro gusto para que sea ms
grande o ms pequea.

.- jlabel.setText("Introduzca aqu un entero positivo"). El mtodo setText se usa para establecer el


texto que va a mostrar la etiqueta JLabel. Como vemos, el texto se le pasa como argumento.

.- jlabel.setBounds(new Rectangle(130, 149, 125, 20)). El mtodo setBounds se usa para posicionar el
control JLabel en una posicin determinada dentro del formulario. Esta posicin est indicada por el
objeto new Rectangle(130, 149, 125, 20), que se le pasa como argumento, donde 130, 149 son
respectivamente las coordenadas x,y dentro del formulario y 125 es el ancho y 20 la altura del control
JLabel.

.- jlabel.setForeground(Color.red). El mtodo setForeground se usa para cambiar el color de letra del


texto usado en la etiqueta. El argumento Color.red indica el color del texto que en este caso es rojo,
pero podemos cambiar por cualquier otro color, por ejemplo Color.green (verde), Color.black (negro),
Color.white (blanco), etc.

.- jlabel.setHorizontalAlignment(SwingConstants.RIGHT). El mtodo setHorizontalAlignment se usa


para alinear el texto dentro del control Jlabel. El argumento SwingConstants.RIGHT indica que el texto
se debe alinear a la derecha, SwingConstants.LEFT sera para alinear a la izquierda y
SwingConstants.CENTER al centro.

.- jlabel.setBorder(new BorderFactory.createLineBorder(Color.red, 1)). El mtodo setBorder se usa


para poner un borde a la etiqueta JLabel. Las propiedades del borde estn indicadas por el objeto new
BorderFactory.createLineBorder(Color.red, 1), que se le pasa como argumento. Color.red indica el
color rojo del borde y 1 es el grosor del borde. Mientras mayor sea el nmero ms grueso ser el borde.

Prueba a crear un Label y establece diferentes mensajes y propiedades para el mismo.

Para mostrar un mensaje compuesto de distintas partes en un JLabel, hemos de usar el smbolo de
concatenacin +. Por ejemplo:

jlabel.setText(msg1 + msg2);

El smbolo en cuestin, hace que se muestre el contenido derivado de las variables m sg l y msg2.

O tra form a relevante de m o strar datos es a travs de la ventana de Dialogo:

JOptionPane. showMessageDialog(ventana, "Mensaje", "Titulo",JOptionPane. INFORMATION_MESSAGE);


Cuando se invoca la funcin JOptionPane.showMessageDialog, se despliega una ventana independiente
donde se m uestra un mensaje. A su vez, podemos configurar JOptionPane para que aparezcan distintos
botones. Por ejemplo, si el mensaje es: Quiere continuar? los botones pueden ser S , No, o A ceptar
y Cancelar. Existen mltiples posibilidades como perm itir que el usuario escriba o seleccione un valor
de un combo, pero no vamos a entrar en ello ya que lo consideramos contenidos avanzados.

Prxima entrega: CU00519A

Matrices o arrays de controles en


Java. Ejemplo con Jlabel y
JtextField. (CU00519A)
Seccin: Cursos
Categora: Lenguaje de programacin Java Nivel I
Fecha ltima actualizacin: 2011
Autor: Walter Sagstegui Lescano
Resumen:

Entrega n18 del Curso Lenguaje de program acin Java Nivel I"

11

MATRICES O ARRAYS DE CONTROLES


Ya hemos visto la utilidad del uso de arrays de variables. Por otro lado, estamos viendo que los
controles son objetos prefabricados, con algunas propiedades que recuerdan a las variables. Por
ejemplo, el contenido de un JTextField, "recuerda" al contenido de una variable. Siendo esto as, se
comprender que igual que es interesante trabajar con arrays de variables, puede resultar atractivo
trabajar con arrays de controles. El siguiente programa hace uso de un array de controles, que
explicaremos detalladamente ms abajo.

//(1) PAQUETE

import
import
import
import
import
import
import
import
import

javax.sw ing.JLabel;
javax.swing.JTextField;
javax.swing.JPanel;
javax.swing.JFram e;
javax.swing.SwingConstants;
javax.swing.BorderFactory;
javax.swing.border.Border;
java.awt.Color;
java.awt.Rectangle;

//(2) FORMULARIO

public class Programa extends JFrame {


//(3) CONTROLES DEL FORMULARIO

JPanel jpanel = (JPanel) this.getContentPane();


JLabel[] label = new JLabel[6]; //D eclaracin del array de etiquetas
JTextField[] text = new JTextField[6]; //D eclaracin del array de ca ja s de texto
Border border = BorderFactory.createLineBorder(Color.black, 1);
//(4) CONSTRUCTOR DEL FORMULARIO

public Programa() {
//(5) PROPIEDADES DEL CONTENEDOR

jpanel.setLayout(null);
jpanel.setBackground(Color.lightGray);
for(int i = 0; i < label.length; i+ + ) {
label [i] = new JLabel(); //Llenam o s el array de etiquetas
text[i] = new JTextField();
//Llem an o s el array de ca jas de texto
//(6) PROPIEDADES DE LOS CONTROLES

label[i].setBounds(new Rectangle(15, (i + 1)*40, 60, 25));


label[i].setText("Dato "+ (i+ 1 ));
label[i].setBorder( border);
label[i].setHorizontalAlignment(SwingConstants.CENTER);
text[i].setBounds(new Rectangle(100, (i+1 )*40 , 60, 25));
//(7) ADICION DE LOS CONTROLES AL CONTENEDOR

jpanel.add(label[i], null);
jpanel.add(text[i], null);
}
//(8) PROPIEDADES DEL FORMULARIO

setSize(200,330);
setTitle("Form1");
setVisible(true);
}
//(9) METODOS DEL FORMULARIO

public static void main(String arg[]) {


new Programa();
}
}

En este formulario, hemos definido 6 JLabels denominados label[0], label[1], label[2], label[3], label[4],
label[5] as como 6 JTextFields, denominados text[0], text[1], text[2], text[4], text[5]. Tambin
podramos haberlos nombrado simplemente como label0, label1, label2, label3, label4, label5, etc. Pero
al igual que ocurre con las variables, resultar mucho ms cmodo de cara al tratamiento de datos el
nombrarlas como una matriz de controles, que nos permite un tratamiento automatizado.
Ahora, nos centraremos en explicar el cdigo del programa expuesto anteriormente.

//(1) PAQUETE
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.SwingConstants;
import javax.swing.BorderFactory;
import javax.swing.border.Border;
import java.awt.Color;
import java.awt.Rectangle;

En este primer bloque de cdigo, declaramos las rutas donde estn ubicadas todas las clases que
estamos usando en el programa .Y como recordatorio de otros artculos, import j'ava.swing.Jlabel, se
interpreta de la siguiente manera "importar la clase JLabel ubicado en la ruta /java/swing/, siendo java
y swing carpetas".

JLabel[] label = new JLabel[6]; //Declaracin del array de etiquetas


JTextField[] text = new JTextField[6]; //Declaracin del array de caj'as de texto

La sentencia JLabel[] label = new JLabel[6], es una declaracin de un array de controles de tipo Jlabel y
el array es de tamao 6, es decir, estamos declarando 6 variables y cada una de estas variables
almacena un control de tipo Jlabel y el nombre de stas adoptan la siguiente forma:
label[0], label[1], label[2], label[3], label[4], label[5]. De igual manera, se puede interpretar lo que hace
la sentencia JTextField[] text = new JTextField[6], en este caso, las variables presentan esta forma:
textl[0], text[1], text[2], text[3], text[4], text[5] y cada una almacena un control de tipo JTextField.
Border border = BorderFactory.createLineBorder(Color.black, 1);
Esta sentencia, es la declaracin de una variable de nombre border, que almacena un borde, con la
caracterstica de que es de color negro y de un grosor de 1, pudiendo tanto el color como el grosor del
borde cambiar a gusto del programador. Por ejemplo, si queremos un borde rojo en lugar de "black",
pondramos "red" y si deseamos un grosor mayor, podemos poner "2" en lugar de "1", hasta obtener la
caracterstica del borde que nos agrade para la etiqueta JLabel. Ms adelante, en el cdigo, se usa esta
caracterstica del borde para ponerlo como atributo de nuestras etiquetas.
for(int i = 0; i < label.length; i++) {
label[i] = new JLabel(); //Llenamos el array de etiquetas
text[i] = new JTextField(); //Llemanos el array de cajas de texto

}
La sentencia for en el programa es usada para manejar los arrays de controles que hemos declarado
previamente. El uso del for en Java lo estudiaremos ms adelante, por lo que no debemos
preocuparnos ahora por entender la sintaxis. Simplemente decir que vamos a crear tantas etiquetas y
tantas cajas de texto como hayamos definido; en nuestro caso, crearemos 6 etiquetas y 6 cajas de
texto. Lo primero a destacar es el atributo label.length, que nos da de forma automtica el tamao de
los arrays mencionados, que en este caso es de tamao 6. Tambin podamos haber usado text.length,
que nos da igualmente el valor 6 , ya que text y label son arrays declarados, ambos de tamao 6.
Por otro lado, la sentencia label[i] = new JLabel(); toma la siguiente forma por cada iteracin de la
sentencia for :
label[0]
label[1]
label[2]
label[3]
label[4]
label[5]

=
=
=
=
=
=

new
new
new
new
new
new

JLabel();
JLabel();
JLabel();
JLabel();
JLabel();
JLabel();

Cada una de estas 6 variables label[0], ... label[5], toma como valor un objeto de tipo JLabel o lo que es
lo mismo, un control de tipo JLabel. De la misma manera, podemos interpretar la sentencia text[i] =
new JTe xtFie ld ();
text[0] = new JTextField();
text[1] = new JTextField();
text[2] = new JTextField();

text[3] = new JTextField();


text[4] = new JTextField();
text[5] = new JTextField();
for(int i = 0; i < label.length; i++) {

//(6) PROPIEDADES DE LOS CONTROLES


label[i].setBounds(new Rectangle(15, (i+1)*40, 60, 25));
label[i].setText("Dato "+(i+1));
label[i].setBorder(border);
label[i].setHorizontalAlignment(SwingConstants.CENTER);
text[i].setBounds(new Rectangle(100, (i+1)*40, 60, 25));

}___________________________________________________________
Esta parte del cdigo est dentro de la sentencia for que vimos antes; por lo tanto, en cada iteracin,
estas sentencias, toman la forma siguiente. Slo analizaremos cuando i = 0 .Para los siguientes valores
1, 2, 3, 4 y 5, se produce la misma accin.
(1)
(2)
(3)
(4)
(5)

label[0].setBounds(new Rectangle(15, (0+1)*40, 60, 25));


label[0].setText("Dato "+(0+1));
label[0].setBorder(border);
label[0].setHorizontalAlignment(SwingConstants.CENTER);
text[0].setBounds(new Rectangle(100, (i+0)*40, 60, 27));

Aclarar que las sentencias numeradas con (1), (2), (3), (4) y (5), ya fueron explicadas en anteriores
entregas; vamos a explicar aspectos generales de lo que hacen en el programa. En (1), tenemos la
sentencia

encargada de ubicar la etiqueta label[0] dentro del formulario, en una coordenada

determinada, as como con un ancho y una altura especfica. Resaltaremos el artificio hecho para
espaciar una etiqueta de otra, de tal forma, que estn en filas distintas y no se superpongan en el
formulario. Por ejemplo, si i = 0, entonces (i +1)*40 = 40, es decir, que esta primera etiqueta label[0], se
ubica dentro del formulario en la fila 40 y si analizamos cuando i = 1, vemos que (i+1)*40 = 80, significa
que la etiqueta label[1], se ubica dentro del formulario en la fila 80.
En (2), tenemos la sentencia encargada de poner un texto a la etiqueta label[0] en el formulario, en este
caso cuando i = 0, la etiqueta label[0] muestra el texto "Dato 1" y cuando i = 1, la etiqueta label [1]
muestra el texto "Dato 2" y as sucesivamente con las dems valores para i.
En (3), tenemos la sentencia encargada de poner un borde a nuestra etiqueta label[0], la definicin de
las caractersticas de este borde, como el color y grosor, ya fueron explicados ms arriba.
En (4), tenemos la sentencia encargada de centrar el texto del punto (2).
En (5) tenemos la misma sentencia de (1), pero en este caso ubica la caja de texto dentro del formulario
en una coordenada determinada, as como el ancho y altura de la etiqueta text[i].

Prxima entrega: CU00520A

Você também pode gostar