Aprenda Java

By: Martín Alejandro Guerra Hernández

Email: maghtin@yahoo.com.mx WebSite: http://mx.geoities.com/maghtin/

Jiquilpan, Michoacán. Enero del 2007

PDF created with pdfFactory Pro trial version www.pdffactory.com

Índice Breve Historia de Java …………………………………………………………………… Introducción a Java……………………………………………………………………….. El Entorno de Desarrollo de Java ……………………………………………………….. Programación Orientada a Objetos …………………………………………………….. Programación en Java……………………………………………………………………. Palabras Reservadas ………………………………………………………………… Tipos de Variables…………………………………………………………………….. Visibilidad y Vida de las Variables………………………………………………….. Operadores de Java…………………………………………………………………... Sentencias de Entrada y Salida de Datos………………………………………….. Estructura de un Programa en Java………………………………………………… Estructuras de Control…………………………………………………………………….. Sentencia de Control if………………………………………………………………... Sentencia de Control switch………………………………………………………….. Bucles…………………………………………………………………………………… Bucle o ciclo while…………………………………………………………………. Bucle o ciclo for……………………………………………………………………. Bucle o ciclo do-while……………………………………………………………... Comparación de los Bucles………………………………………………………. Arreglos…………………………………………………………………………………….. Introducción a los Applet………………………………………………………………….. Estructura de un Applet……………………………………………………………….. Incrustar un Applet en una Pagina Web…………………………………………….. Clase Graphics…………………………………………………………………………….. Cuadros de Dialogo……………………………………………………………………….. Manejo de imágenes……………………………………………………………………… Herramientas Graficas de AWT………………………………………………………….. Control Label (etiquetas)……………………………………………………………... Clase TextField (cajas de texto)……………………………………………………... Control Button (botones)……………………………………………………………... Control Checkbox (casillas de verificación)………………………………………... Control List (lista desplegable)……………………………………………………… Control Scrollbar (barras de desplazamiento)…………………………………….. Referencias Bibliograficas………………………………………………………………..

Pagina 1 1 2 3 4 4 4 5 7 9 10 14 14 16 19 19 22 25 25 27 31 31 32 33 37 39 40 40 41 41 41 42 43 47

PDF created with pdfFactory Pro trial version www.pdffactory.com

Curso Básico de Java 2

By: m @gh

BREVE HISTORIA DE JAVA Java surgió en 1991 cuando un grupo de ingenieros de Sun Microsystems trataron de diseñar un nuevo lenguaje de programación destinado a electrodomésticos. La reducida potencia de cálculo y memoria de los electrodomésticos llevó a desarrollar un lenguaje sencillo capaz de generar código de tamaño muy reducido. Debido a la existencia de distintos tipos de CPUs y a los continuos cambios, era importante conseguir una herramienta independiente del tipo de CPU utilizada. Desarrollaron un código “neutro” que no dependía del tipo de electrodoméstico, el cual se ejecutaba sobre una “máquina hipotética o virtual” denominada Java Virtual Machine (JVM). Era la JVM quien interpretaba el código neutro convirtiéndolo a código particular de la CPU utilizada. Esto permitía lo que luego se ha convertido en el principal lema del lenguaje: “Write Once, Run Everywhere”. A pesar de los esfuerzos realizados por sus creadores, ninguna empresa de electrodomésticos se interesó por el nuevo lenguaje. Como lenguaje de programación para computadores, Java se introdujo a finales de 1995. La clave fue la incorporación de un intérprete Java en la versión 2.0 del programa Netscape Navigator, produciendo una verdadera revolución en Internet. Java 1.1 apareció a principios de 1997, mejorando sustancialmente la primera versión del lenguaje. Java 1.2, más tarde rebautizado como Java 2, nació a finales de 1998, puede descargarlo de Sun Microsystems: http://java.sun.com/j2se/1.5.0/download.jsp Al programar en Java no se parte de cero. Cualquier aplicación que se desarrolle “cuelga” (o se apoya, según como se quiera ver) en un gran número de clases preexistentes. Algunas de ellas las ha podido hacer el propio usuario, otras pueden ser comerciales, pero siempre hay un número muy importante de clases que forman parte del propio lenguaje (el API o Application Programming Interface de Java). Java incorpora en el propio lenguaje muchos aspectos que en cualquier otro lenguaje son extensiones propiedad de empresas de software o fabricantes de ordenadores (threads, ejecución remota, componentes, seguridad, acceso a bases de datos, etc.). La compañía Sun describe el lenguaje Java como “simple, orientado a objetos, distribuido, interpretado, robusto, seguro, de arquitectura neutra, portable, de altas prestaciones, multitarea y dinámico”.

INTRODUCCIÓN A JAVA Los programas desarrollados en Java presentan diversas ventajas frente a los desarrollados en otros lenguajes como C/C++. La ejecución de programas en Java tiene muchas posibilidades: ejecución como aplicación independiente (Stand-alone Application), ejecución como applet, ejecución como servlet, etc. Un applet es una aplicación especial que se ejecuta dentro de un navegador o browser (por ejemplo Netscape Navigator o Internet Explorer) al cargar una página HTML desde un servidor Web. El applet se descarga desde el servidor y no requiere instalación en el ordenador donde se encuentra el browser. Un servlet es una aplicación sin interface gráfica que se ejecuta en un servidor de Internet. La ejecución como aplicación independiente es análoga a los programas desarrollados con otros lenguajes. By: m @ gh 1

PDF created with pdfFactory Pro trial version www.pdffactory.com

Curso Básico de Java 2

By: m @gh

Además de incorporar la ejecución como Applet, Java permite fácilmente el desarrollo tanto de arquitecturas cliente-servidor como de aplicaciones distribuidas, consistentes en crear aplicaciones capaces de conectarse a otros ordenadores y ejecutar tareas en varios ordenadores simultáneamente, repartiendo por lo tanto el trabajo. Aunque también otros lenguajes de programación permiten crear aplicaciones de este tipo, Java incorpora en su propio API estas funcionalidades. La versión 1.3 contenía 76 packages y aproximadamente 2000 elementos entre clases, interfaces, excepciones, etc. EL ENTORNO DE DESARROLLO DE JAVA Existen distintos programas comerciales que permiten desarrollar código Java. La compañía Sun, creadora de Java, distribuye gratuitamente el Java Development Kit (JDK). Se trata de un conjunto de programas y librerías que permiten desarrollar, compilar y ejecutar programas en Java. Incorpora además la posibilidad de ejecutar parcialmente el programa, deteniendo la ejecución en el punto deseado y estudiando en cada momento el valor de cada una de las variables (con el denominado Debugger), destinado a la detección y corrección de errores. El compilador de Java, es de una de las herramientas de desarrollo incluidas en el JDK. Realiza un análisis de sintaxis del código escrito en los archivos fuente de Java (extensión *.java). Si no encuentra errores en el código genera los archivos compilados (extensión *.class). En otro caso muestra la(s) línea(s) errónea(s).Dicho compilador se llama javac.exe La Java Virtual Machine, se planteó la necesidad de conseguir un código capaz de ejecutarse en cualquier tipo de máquina. Una vez compilado no debería ser necesaria ninguna modificación por el hecho de cambiar de procesador o de ejecutarlo en otra máquina. La clave consistió en desarrollar un código “neutro” el cual estuviera preparado para ser ejecutado sobre una “máquina hipotética o virtual”, denominada Java Virtual Machina (JVM). Es esta JVM quien interpreta este código neutro convirtiéndolo a código particular de la CPU utilizada. Se evita tener que realizar un programa diferente para cada CPU o plataforma. La JVM es el intérprete de Java. Ejecuta los “bytecodes” (archivos compilados con extensión *.class) creados por el compilador de Java (javac.exe). Las variables PATH y CLASSPATH, el desarrollo y ejecución de aplicaciones en Java exige que las herramientas para compilar (javac.exe) y ejecutar (java.exe) se encuentren accesibles. La computadora, desde una ventana de comandos de MS-DOS, sólo es capaz de ejecutar los programas que se encuentran en los directorios indicados en la variable PATH de la computadora (o en el directorio activo). Si se desea compilar o ejecutar código en Java, el directorio donde se encuentran estos programas (java.exe y javac.exe) deberá encontrarse en el PATH. Una forma general de indicar estas dos variables es crear un archivo por lotes de MS-DOS (*.bat) donde se indiquen dichos valores. Cada vez que se ejecute MS-DOS será necesario ejecutar este archivo *.bat para su asignación adecuada. Un archivo sería jdk115.bat: ? set JAVAPATH=C:\ jdk1.1.5 set PATH=.;%JAVAPATH%\bin;%PATH% set CLASSPATH=.\ ;%JAVAPATH%\lib\classes.zip;%CLASSPATH% lo cual sería válido en el caso de que el JDK estuviera situado en el directorio C:\jdk1.1.5
By: m @ gh

2

PDF created with pdfFactory Pro trial version www.pdffactory.com

altura. hablar Animales perro. color. marca frenar. Ejemplo: class Circulo extend Figuras // Se aplica la herencia { … public void copiar(Figuras f) { … }. peso. // Se aplica el polimorfismo } By: m @ gh 3 PDF created with pdfFactory Pro trial version www. es una agrupación de datos (variables o campos) y de funciones (métodos) que operan sobre esos datos. dormir. private. mujer nombre. En Java. los objetos de distintas clases pertenecientes a una misma jerarquía o que implementen una misma interface pueden tratarse de una forma general e individualizada. color. Un programa se construye a partir de un conjunto de clases. y cuyas clases son. Clase Objeto Estado Comportamiento Persona hombre. las clases soportan 3 características fundamentales de la POO: encapsulación. oler Vehículos Automóvil. Ejemplo: class No mbre_Clase_Derivada extend No mbre_Clase_Base Clase: Figuras class Triangulo extend Figuras Polimorfismo.com .pdffactory. una clase puede derivar de otra (extends). Las variables miembro y los métodos pueden ser public. // Se aplica el polimorfismo } class Triangulo extend Figuras // Se aplica la herencia { … public void copiar(Figuras f) { … }. las clases pueden ser declaradas como públicas (public) y como package (accesibles sólo para otras clases del package). son elementos declarados de una clase. cada uno de los cuales representa una instancia de alguna clase. leer. raza ladrar. La Clase.Curso Básico de Java 2 By: m @gh PROGRAMACIÓN ORIENTADA A OBJETOS (OOP) Los Objetos. A estos datos y funciones pertenecientes a una clase se les denomina variables o métodos de instancia. lobo. De esta forma se puede controlar el acceso y evitar un uso inadecuado. motocicleta ruedas. protected. herencia y polimorfismo Encapsulación. todas ellas miembros de una jerarquía de clases unidas mediante relaciones de herencia. al mismo tiempo. Un objeto tiene una estructura y al igual que los objetos del mundo real comparten dos características: estado y comportamiento. edad comer. correr. frenos. coyote nombre. acelerar La Programación Orientada a Objetos se basa en la programación de clases. y en ese caso hereda todas sus variables y métodos. Se considera un método de implementación en el que los programas se organizan como colecciones cooperativas de objetos. Una clase derivada puede añadir nuevas variables y métodos y/o redefinir las variables y métodos heredados. Herencia. El estado de un objeto son sus atributos (propiedades) y el comportamiento (operaciones).

byte. Valores true y false char 2 bytes. Pueden ser cualquier conjunto de caracteres numéricos y alfanuméricos.com .. Valor entero entre -128 y 127 By: m @ gh 4 PDF created with pdfFactory Pro trial version www. un tipo para almacenar caracteres (char).). int. caracteres y valores numéricos enteros o de punto flotante.pdffactory. lenguajes en los que está inspirado. Pueden ser también tipos primitivos o referencias.Curso Básico de Java 2 By: m @gh PROGRAMACIÓN EN JAVA En este apartado se presentan las características generales de Java como lenguaje de programación. Comprende el código ASCII byte 1 byte. Variables locales: Se definen dentro de un método o más en general dentro de cualquier bloque entre llaves { }. int y long) y dos para valores reales de punto flotante (float y double). short. fuera de cualquier método. Desde el punto de vista del papel o misión en el programa.+-*/ etc. Los rangos y la memoria que ocupa cada uno de estos tipos se muestran a continuación: Tipo de variable Descripción boolean 1 byte. 2. Existe una serie de palabras reservadas las cuales tienen un significado especial para Java y por lo tanto no se pueden utilizar como nombres de variables. Se crean en el interior del bloque y se destruyen al finalizar dicho bloque. y 6 tipos para guardar valores numéricos. double. las variables son: 1. float. Nombres de Variables Los nombres de variables en Java se pueden crear con mucha libertad. Java dispone de ocho tipos primitivos de variables: un tipo para almacenar valores true y false (boolean). pueden ser tipos primitivos (char. boolean) o referencias (arrays u objetos de una determinada clase). Unicode. long. Variables miembro de una clase: Se definen en una clase. Es muy similar a C/C++. sin algunos caracteres especiales utilizados por Java como operadores o separadores ( . short. cuatro tipos para enteros (byte. Una variable es un nombre que contiene un valor que puede cambiar a lo largo del programa. Dichas palabras son: Abstract Char Double For Int Package Static Throws Boolean Class Else Goto Interface private super transient Break Const extends If Long protected Switch Try byte continue final implements native public synchronized void case default finally import new return this volatile Match Do Flota Instanceof Null Short Throw While Tipos Primitivos de Variables Se llaman tipos primitivos de variables de Java a aquellas variables sencillas que contienen los tipos de información más habituales: valores boolean.

807 float 4 bytes (entre 6 y 7 cifras decimales equivalentes).402823E38 fouble 8 bytes (unas 15 cifras decimales equivalentes).65. De -1. Se inicializa a 0 int y = 5.// Se crea un vector de 5 referencias a objetos // Las 5 referencias son inicializadas a null VISIBILIDAD Y VIDA DE LAS VARIABLES Dependiendo del lugar donde se definan las variables de Java.com . alcance o scope. un vector de enteros) o de objetos. Un tipo particular de referencias son los arrays o vectores. Java garantiza que los elementos del vector son inicializados a null o a cero (según el tipo de dato) en caso de no indicar otro valor. // Declaración de la variable primitiva x. // Declaración e inicialización de un vector de 3 // elementos con los valores entre llaves MyClass [ ] lista=new MyClass[5].79769313486232E308 a -4.854. 2. Valor entero entre -32768 y 32767 int 4 bytes.036.223.0.401298E-45 y de 1.pdffactory. Valor entre -9.775.483.1}. // Vector de 10 enteros. Si no se especifica un valor en su declaración.036.94065645841247E-324 a 1.775. En los siguientes ejemplos aparece cómo crear un vector de 10 números enteros y cómo crear un vector de elementos MyClass.483.808 y 9. // Declaración de un array. Se inicializa a null vector = new int[10]. Según el ámbito los tipos básicos son: By: m @ gh 5 PDF created with pdfFactory Pro trial version www. Se inicializa a 5 unaRef = new MyClass().94065645841247E-324 y de 4. dentro de un método o solo temporalmente dentro de un bloque de sentencias.147.854. 3. El ámbito (alcance) de una variable se extiende desde la sentencia que la define hasta los límites del bloque que la contiene.Curso Básico de Java 2 By: m @gh Tipo de variable Descripción short 2 bytes. sean éstos de variables primitivas (por ejemplo.223.372. Ejemplos de declaración e inicialización de variables: int x. De -3. // La referencia “apunta” al nuevo objeto creado // Se ha utilizado el constructor por defecto int [ ] vector.372.647 Long 8 bytes. // Declaración de la variable primitiva y.147.648 y 2. estas se pueden utilizar en la totalidad del programa. En la declaración de una referencia de tipo array hay que incluir los corchetes []. Estas variables pueden ser tanto de tipos primitivos como referencias a objetos de alguna clase perteneciente al API de Java o generada por el usuario.401298E-45 a 3. La zona de un programa en la que una variable está activa se denomina: ámbito. Análogamente las variables de tipo referencia son inicializadas por defecto a un valor especial: null. las variable primitivas se inicializan a cero (salvo boolean y char. inicializados a 0 double [ ] v = {1.402823E38 a -1. Valor entero entre -2. que se inicializan a false y '\0').79769313486232E308 Cómo se definen e inicializan las variables Una variable se define especificando el tipo y el nombre de dicha variable.

accesible en todo el paquete y en clases derivadas de otros paquetes. el objeto al cual apunta no es eliminado si hay otras referencias apuntando a ese mismo objeto. solo accesible dentro de la clase. no existen en memoria hasta que se ejecuta el método. fuera de los métodos. Lo anterior significa que aunque una variable de tipo referencia deje de existir. La eliminación de los objetos la realiza el programa denominado garbage collector. num2. Note que es igual a la del otro método. al menos son visibles desde cualquier método de la clase y se referencian simplemente con su nombre. By: m @ gh 6 PDF created with pdfFactory Pro trial version www. Variables de Clase.Curso Básico de Java 2 By: m @gh Variables Locales. son aquellas definidas en el interior de un método y son visibles solo en ese método específico. En Java la forma de crear nuevos objetos es utilizando el operador new. num2 = 22.com . Lo cual permite ahorrar memoria. default (sin modificador).pdffactory. Y se caracteriza por: se le asigna memoria cuando se crea el objeto de la clase y permanece hasta que el objeto es liberado o termina la ejecución del programa. // Esta variable es visible por ser Miembro de la Clase } } Visibilidad de las variables de una clase de menos accesible a más: private. Cuando se utiliza el operador new. public. accesible desde cualquier clase. Uno de los aspectos más importantes en la programación orientada a objetos (OOP) es la forma en la cual son creados y eliminados los objetos. Para cada objeto se lleva cuenta de por cuántas variables de tipo referencia es apuntado. los nombres de las variables locales no han de ser únicos (2 o mas métodos pueden definir la misma variable) cada variable pertenece al método que esta declarada. las variables de clase se declaran en una clase. quien automáticamente libera o borra la memoria ocupada por un objeto cuando no existe ninguna referencia apuntando a ese objeto. ? Ejemplo: class Numeros { int num1. accesible por cualquier clase del paquete. // Declaración de variable Local. // Esta variable es visible por ser Miembro de la Clase } double sumas() { float x. la variable de tipo referencia guarda la posición de memoria donde está almacenado este nuevo objeto. Y se caracterizan por: no puede ser modificada por ninguna sentencia externa al método. los miembros de una clase son métodos o variables. // Declaración de variable Local num1 = 21. protected. // Declaración de variables Miembro de la Clase double promedio() { double x.

El resultado de estos operadores es siempre un valor boolean (true o false) según se cumpla o no la relación considerada. La forma general de las sentencias de asignación con este operador es: Operador Utilización Expresión equivalente += op1 += op2 op1 = op1 + op2 -= op1 -= op2 op1 = op1 . Operadores incrementales Java dispone del operador incremento (++) y decremento (--). La Tabla muestra los operadores relacionales de Java. Operadores de asignación Los operadores de asignación permiten asignar un valor a una variable.4 muestra los operadores lógicos de Java.Curso Básico de Java 2 By: m @gh OPERADORES DE JAVA Java es un lenguaje rico en operadores. Es un operador binario cuya forma general es. resta (-). La Tabla 2.pdffactory. desigualdad y relación de menor o mayor. que son casi idénticos a los de C/C++. El operador (++) incrementa en una unidad la variable a la que se aplica. objectName instanceof ClassName y que devuelve true o false según el objeto pertenezca o no a la clase. mientras que (--) la reduce en una unidad. Estos operadores se pueden utilizar de dos formas: Operadores relacionales Los operadores relacionales sirven para realizar comparaciones de igualdad. Operador Utilización El resultado es true > op1 > op2 si op1 es mayor que op2 >= op1 >= op2 si op1 es mayor o igual que op2 < op1 < op2 si op1 es menor que op2 <= op1 <= op2 si op1 es menor o igual que op2 == op1 == op2 si op1 y op2 son iguales != op1 != op2 si op1 y op2 son diferentes Operadores lógicos Los operadores lógicos se utilizan para construir expresiones lógicas. división (/) y resto de la división (%). multiplicación (*). Estos operadores se describen brevemente en los apartados siguientes. combinando valores lógicos (true y/o false) o los resultados de los operadores relacionales. Operadores aritméticos Son operadores binarios (requieren siempre dos operandos) que realizan las operaciones aritméticas habituales: suma (+). Debe notarse que en ciertos casos el segundo By: m @ gh 7 PDF created with pdfFactory Pro trial version www. El operador de asignación por excelencia es el operador igual (=).com .op2 *= op1 *= op2 op1 = op1 * op2 /= op1 /= op2 op1 = op1 / op2 %= op1 %= op2 op1 = op1 % op2 Operador instanceof El operador instanceof permite saber si un objeto pertenece o no a una determinada clase.

Si op1 es false ya no se evalúa op2 true si op1 u op2 son true. se evalúan de izquierda a derecha. Siempre se evalúa op2 negación ! op AND op1 & op2 OR op1 | op2 Operador de concatenación de cadenas de caracteres (+) El operador más (+) se utiliza también para concatenar cadenas de caracteres.pdffactory.com . La variable numérica result es convertida automáticamente por Java en cadena de caracteres para poderla concatenar. La siguiente lista muestra el orden en que se ejecutan los distintos operadores en un sentencia. excepto los operadores de asignación. lo que significa que el valor de la derecha se copia sobre la variable de la izquierda. (params) expr++ expr-unary operators ++expr --expr +expr -expr ~ ! creation or cast new (type)exp. multiplicative */% Additive +Shift << >> >>> Relational < > <= >= instanceof Equality == != Bitwise AND & Bitwise exclusive OR ^ Bitwise inclusive OR | Logical AND && Logical OR || Condicional ?: Assignment = += -= *= /= %= &= ^= |= <<= >>= >>>= En Java. todos los operadores binarios. Operador Nombre && AND || ! & | OR Utilización op1 && op2 op1 || op2 Resultado true si op1 y op2 son true. ya se sabe que la condición de que ambos sean true no se va a cumplir).Curso Básico de Java 2 By: m @gh operando no se evalúa porque ya no es necesario (si ambos tienen que ser true y el primero es false. Los operadores de asignación se evalúan de derecha a izquierda. Si op1 es true ya no se evalúa op2 true si op es false y false si op es true true si op1 y op2 son true. Siempre se evalúa op2 true si op1 u op2 son true. para escribir una cantidad con un rótulo y unas unidades puede utilizarse la sentencia: System. By: m @ gh 8 PDF created with pdfFactory Pro trial version www. Por ejemplo.out.println("El total asciende a " + result + " unidades"). Por ejemplo. donde el operador de concatenación se utiliza dos veces para construir la cadena de caracteres que se desea imprimir por medio del método println(). Esto puede traer resultados no deseados y por eso se han añadido los operadores (&) y (|) que garantizan que los dos operandos se evalúan siempre. el resultado de x/y*z depende de qué operación (la división o el producto) se realice primero. de mayor a menor precedencia: postfix operators [] . Precedencia de operadores El orden en que se realizan las operaciones es fundamental para determinar el resultado de una expresión.

io.out es una referencia a un objeto de clase PrintStream.out. Entre los que destacan: System. Ent rada (System. parseFloat. println( ) transfiere una cadena de caracteres y el carácter de fin de línea al buffer de la pantalla. es preferible hacerlo línea a línea. ? Ejemplo: Syste m. la entrada y salida se lee y escribe en flujos (streams).read().com .print(“Nombre:”). No resulta practico el capturar carácter a carácter.i n para entrada por teclado Syste m. Entre los metodos de clase se encuentran read().out.out. By: m @ gh 9 PDF created with pdfFactory Pro trial version www.pdffactory.Curso Básico de Java 2 By: m @gh SENTENCIAS DE ENTRADA/SALIDA DE DATOS En Java. nombrex = ent r.readline(). in) .out. BufferedReader. que por defecto es el teclado.) Este paquete se utiliza para entradas de datos por teclado y salidas de datos en pantalla.print. de la que se crea un objeto inicializado con Syste m. readLine. BufferedReader entr = ne w BufferedRea der(new InputStrea mReader(Syste m.in.i n) El objeto esta asociado al flujo estándar de entrada.print(“Este es un mensaje en java”). que dirige los datos a consola y permite visualizarlos en la pantalla de su equipo: Syste m.out. Paquete io (import java. La clase System define dos referencias a objetos para la gestión de entrada y de salida: Syste m. La fuente básica de entrada de datos es el teclado y la fuente de salida de datos es la pantalla. Syste m.in Bu ffer edReader var iable = new Bu fferedReader( new Input StreamReader(S yst em.*. Syste m. Para ello se utiliza la clase InputStreamReader.println(“El Nombre Tecleado es: ” + nombrex).out para la salida por pantalla Salida (System.println(“Este es un mensaje en java y el cursor lo envía a la siguiente línea”). ? Eje mplo: String nombrex.out) El objeto out definido en la clase System esta asociado con el flujo de salida.in).parseInt. Syste m. letra = (char) Syste m. que devuelve el carácter actual en el buffer de entrada. ? Ejemplo: char letra. tiene métodos que se utilizarán con mucha frecuencia: print( ) transfiere una cadena de caracteres al buffer de pantalla.

devuelve un objeto numérico entero. Paquete io util io util io util *Clase/Metodo+ +print +print *BufferedReader *Scanner +readLine +nextLine Transfiere una cadena de caracteres al buffer de pantalla.out. Scanner. devuelve un objeto numérico decimal. Se utiliza para la entrada de datos desde el teclado. Asimismo.println(“Bienvenidos al Lenguaje Java”). Se utiliza para la entrada de datos desde el teclado.util. Tiene como argumento una cadena y devuelve el valor entero correspondiente a la conversión de dígitos de la cadena.*. } } ? Ejemplo 1.com . consiste en enviar un mensaje a la pantalla: // Importación de la clase io de entrada/salida. io util +parseInt +nextInt io Util +parseFloat +nextFloat ESTRUCTURA DE UN PROGRAMA EN JAVA Un programa en Java se compone de una o más clases.print.out. Entre los que destacan: System..io public class Mensa je1 // Nombre de la clase principal. *. //Envía el mensaje a pantalla. } // Fin del método principal del programa } // Fin de la clase principal By: m @ gh 10 import java. // Importación de las clases de los paquetes.pdffactory.io. { .) Este paquete se utiliza para entradas de datos por teclado y salidas de datos en pantalla. Uno de los métodos de la clase principal debe ser obligatoriamente el main(). un programa contendrá una serie de declaraciones import que permitirán incluir en el mismo archivo que a su vez constarán de clases y datos predefinidos por ellos. nextLine. PDF created with pdfFactory Pro trial version www. public class nombreDelProgra ma // Nombre de la clase principal { public static void main(String arg[]) //Método por el que inicia la ejecución del programa. Un método en Java es un grupo de instrucciones que realiza una o más acciones. // * indica que debe importar todos los elementos del paquete java. devuelve un objeto cadena con los caracteres leídos hasta encontrar la marca de fin de línea.no mbreClase.Curso Básico de Java 2 By: m @gh Paquete util (import java. Tiene como argumento una cadena y devuelve el valor numérico decimal correspondiente a la conversión de dígitos de la cadena. nextFloat. import no mbrePaquete.. nextInt. en este caso Mensaje1 { // Inicia y define la clase principal public static void main(String arg[]) //Método por el que inicia la ejecución del programa. { // Inicia el método principal del programa Syste m. Se utiliza para la entrada de datos desde el teclado. Permite inicializar los métodos para lectura de datos.

en este caso ValorVariables { // Inicia y define la clase principal public static void main(String arg[]) //Método por el que inicia la ejecución del programa.*. promedio. // Importación de la clase io de entrada/salida.println(“La suma es: ”+suma). // Declaración de variable local tipo numérica entera. en este caso MensajeSalto { // Inicia y define la clase principal public static void main(String arg[]) //Método por el que inicia la ejecución del programa. // Declaración de variables locales tipo numérica entera.io. consiste en enviar mensajes a pantallas con salto de línea.*. Syste m. // Importación de la clase io de entrada/salida.println(“Tu eres: ”+nombrex).out. en este caso SumaPromedio { // Inicia y define la clase principal public static void main(String arg[]) //Método por el que inicia la ejecución del programa.print(“Soy: Alejandro \n”). //Muestra en pantalla el promedio } // Fin del método principal del programa } // Fin de la clase principal By: m @ gh ? 11 PDF created with pdfFactory Pro trial version www. // Calcula el promedio. almacenando el resultado en suma.pdffactory.io. import java. //Muestra en pantalla el resultado de la suma Syste m. // Importación de la clase io de entrada/salida. //Envía el mensaje en dos líneas } // Fin del método principal del programa } // Fin de la clase principal ? Ejemplo 3.*. // Asignación del numero 12 a la variable de tipo numerica. //Envía el mensaje con salto de línea Syste m. { // Inicia el método principal del programa int numero.out. // Declaración de variables locales tipo numérica entera. // Asignación de contenido de texto a la variable de tipo cadena. import java. nombrex=“Alejandro”. num2. promedio=suma/3. // Declaración de variable local tipo cadena. } // Fin del método principal del programa } // Fin de la clase principal Ejemplo 4.io.out. int suma. consiste en declarar variables de texto y numéricas. // Asignación de valores numéricos a las variables. public class ValorVariables // Nombre de la clase principal.out. { // Inicia el método principal del programa int num1.out. num3. import java.out. public class Su maPro medio // Nombre de la clase principal.println(“El promedio es: ” +promedio). suma=(num1+num2+num3). num3=8. { // Inicia el método principal del programa Syste m. numero=12.com . num2=7.print(“Aprendiendo un poco \nde Java”). asignarles valores e imprimir esos valores en pantalla.println(“Tu numero de la suerte es: ” +numero). // Calcula la suma de valores. Calcular la sumatoria y promedio e imprimir esos valores en pantalla. consiste en declarar variables numéricas. String nombrex.Curso Básico de Java 2 By: m @gh ? Ejemplo 2. almacenando el resultado en promedio Syste m. //Muestra en pantalla el valor de la variable Syste m. public class Mensa jeSalto // Nombre de la clase principal. asignarles valores. num1=10.

out. String auxiliar.io. // Declaración de variable local tipo cadena que almacenará el año. Mostrar en pantalla el nombre con su edad y el total de segundos de vida.println("Año de Nacimiento"). almacenando el valor en la variable segundos segs = edad * 525600.readLine(). nombre=entrada.*. la edad y el total de segundos de vida de la persona. //Muestra en pantalla el mensaje Año de nacimiento // Método que permite la lectura de datos tipo cadena a través del objeto entrada.Curso Básico de Java 2 By: m @gh ? Ejemplo 5.edad. // Definida en la clase System.out.println("Tu eres"+nombre+" tu edad es:"+edad+ "equivale a"+segs+"seg. Debe calcular la edad de la persona en segundos de vida. // Realiza el calculo del total de segundos de vida. en este caso NombreEdad { // Inicia y define la clase principal public static void main(String arg[]) //Método por el que inicia la ejecución del programa. //Muestra en pantalla el mensaje Nombre // Método que permite la lectura de datos tipo cadena a través del objeto entrada.readLine(). de vida" ).com . import java. Note que se utiliza la clase io.parseInt(auxiliar). solamente se pueden leer datos tipo cadena. // Declaración de variable local tipo cadena que almacenará el nombre.pdffactory. // Realiza el calculo de la edad de la persona. BufferedReader entrada=new BufferedReader(new InputStreamReader(S ystem. almacenando el valor en la variable edad edad = 2006 . // Declaración de variable local tipo flotante que almacenará los segundos. // Permite hacer la conversión del dato tipo texto a dato tipo numérico entero. cuya referencia esta dada en el in . System.nacio. nacio=Integer. { // Inicia el método principal del programa String nombre.in)). consiste en capturar el Nombre y el año de nacimiento de una persona. // Almacenará el año de nacimiento y guardará el resultado del calculo. auxiliar=entrada. System.out. // Muestra en pantalla el nombre. // Inicializa el método para lectura de datos tipo cadena. // Cabe destacar que a través de la clase io. float segs. // Declaración de variables locales tipo numérica entera. } // Fin del método principal del programa } // Fin de la clase principal By: m @ gh 12 PDF created with pdfFactory Pro trial version www.println("Nombre"). // Importación de la clase io de entrada/salida public class No mbreEdad // Nombre de la clase principal. int nacio. //El valor pulsado por teclado se almacenará en la variable nombre System.

// Importación de la clase ut il de entrada/salida public class No mbrePro medio // Nombre de la clase principal es: NombrePromedio { // Inicia y define la clase principal public static void main(String arg[]) //Método por el que inicia la ejecución del programa.nextFloat(). // Lee un valor de tipo flotante y se lo asigna a la variable calif2 Syste m. el día y tres calificaciones de la Materia de Programación. double. calif2= in.calif2.print("No mbre:"). Calificacion:").print("3era. Syste m. // Lee un valor de tipo flotante y se lo asigna a la variable calif1 Syste m. float calif1.com .print("2da. // Muestra en pantalla el dia.out.out.util) // que permite leer datos de tipo: texto.nextInt(). calif3= in. calif1= in. Debe mostrar en pantalla el día que se hizo la entrega.println("Materia de Progra macion").pdffactory. Syste m. Calificacion:").out. // Creamos una clase in de tipo Scanner (del paquete java.print("1era. Syste m. entero. Debe calcular el promedio de la materia.out.nextLine().out. // Lee un valor de tipo entero y se lo asigna a la variable dia Syste m. import java. Calificacion:").println("El dia: "+dia+" se entrego el promedio de: "+pro m). // Lee un valor de tipo double y se lo asigna a la variable calif3 // Realiza el calculo del promedio y el resultado se lo asigna a la variable prom prom=(calif1+calif2+calif3)/3.println("al alumno(a): "+ no m). el promedio y el nombre del alumno. Note que se utiliza la clase util.nextFloat(). // Declaración de variable local tipo numérico que almacenará el día de la entrega // Declaración de variables locales tipo flotante que almacenará 2 de las calificaciones.print("Dia:").nextDouble(). el promedio y en otra linea el nombre del alumno(a) Syste m.Curso Básico de Java 2 By: m @gh ? Ejemplo 6. // Declaración de variable local tipo cadena que almacenará el nombre. Scanner in = ne w Scanner(Syste m. prom. //Muestra en pantalla el mensaje Dia dia = in.out. } // Fin del método principal del programa } // Fin de la clase principal By: m @ gh 13 PDF created with pdfFactory Pro trial version www. Syste m. { // Inicia el método principal del programa String nom. // Declaración de variables locales tipo double que almacenará 1 calificación y el promedio double calif3. flotante. // Lee un valor de tipo cadena y se lo asigna a la variable nom. consiste en capturar el Nombre. int dia.*. //Muestra en pantalla el mensaje Nombre nom= in.in ).out.out.util.

consiste en capturar la edad de la persona.nextInt(). donde: la condición es una expresión logica y la sentencia representa la acción ejecutable.out.print("Eres menor de e dad"). El formato más sencillo tiene la siguiente sintaxis: if (condición) sentencia.print("Eres mayor de e dad. la estructura de control de selección principal es la sentencia if. Las estructuras de control permiten combinar instrucciones o sentencias individuales en una simple unidad lógica con un punto de entrada y un punto de salida. si la condición toma un valor verdadero.*. Debe mostrar en pantalla la edad y una frase que indique mayor o menor de edad.out. } } By: m @ gh 14 PDF created with pdfFactory Pro trial version www. else Syste m. edad= in.com .util. selección (decisión) y repetición. SENTENCIA DE CONTROL if En Java. Las instrucciones o sentencias se organizan en tres tipos de estructuras de control que sirven para controlar el flujo de la ejecución: secuencia.println("Edad:"). ? Ejemplo 7.Curso Básico de Java 2 By: m @gh ESTRUCTURAS DE CONTROL Estas permiten controlar el comportamiento de un método o de un programa. import java.pdffactory. Hasta este momento solo se han utilizado el flujo secuencial. if (edad >=18) Syste m.in). Scanner in = new Scanner(Syste m. Una sentencia compuesta es un conjunto de sentencias encerradas entre llaves que se utiliza para especificar un flujo secuencial. ya puedes votar").out. La sentencia if tiene dos alternativas o formatos posibles. Debe distinguir si esa persona tiene mayoría de edad o no. else acción 2 donde: la condición es una expresión logica y la acción 1 se ejecuta si la expresión logica es verdadera y la acción 2 se ejecuta si la expresión logica es falsa. Otro formato de la sentencia if es la sentencia if-else. Syste m. El formato tiene la siguiente sintaxis: if (condición) acción 1 . public class MayoriaEdad { public static void main(String arg[]) { int edad.

nu mmayor.println("3er. Autor: Mart ín Ale jandro Guerra Hernández / m@gh Descripción: Capt ura 3 Números. num3 = in.*.print("El numero mayor es:"+nu m3).util. Numero:").out. num2 = in. La aplicación debe distinguir cuál de los números es el mayor.out. else if((num2 > nu m1) && (nu m2 > n u m3)) Syste m. num1 = in.out. public class Nu mMayor { public static void main(String arg[]) { float num1. } } By: m @ gh 15 PDF created with pdfFactory Pro trial version www.out.pdffactory. Debe mostrar en pantalla el mayor de ellos.Curso Básico de Java 2 By: m @gh ? /* Ejemplo 8. Syste m. else if((num3 > nu m1) && (nu m3 > n u m1)) Syste m.com . Syste m. nu m3. Numero:"). Scanner in = new Scanner(Syste m.in). Syste m.out.print("Los Nu meros Son Iguales"). if ((num1>nu m2) && (nu m1 >nu m3)) Syste m.print("El numero mayor es:"+nu m2).out. Numero:").out.nextFloat(). la aplic ació n debe deducir cuál es mayor de lo s 3 Fecha: 2-01-07 */ import java. nu m2 .out. consiste en capturar una serie de tres números.println("1er.print("El numero mayor es:"+nu m1). else System.println("Aplicacion que Lee 3 Nu meros y deduce cual es mayor ").nextFloat().println("2do. Syste m.nextFloat().

Aunque la etiqueta default es opcional. Si el valor de la expresión selector es igual a una de las etiquetas case por ejemplo: case1. default: sentencias n . La omisión de una etiqueta default puede crear un error lógico difícil de prever. . La sentencia switch es especialmente útil cuando la selección se basa en el valor de una variable simple o de una expresión simple denominada expresión de control o selector.. pero no de tipo double.com . Cuando la computadora ejecuta las sentencias siguientes a una etiqueta case. Si se omiten las sentencias break. continua hasta que se alcanza una sentencia break. string o flota. El valor de esta expresión puede ser de tipo int. break. Si la computadora encuentra una sentencia break. string o float. termina la sentencia switch.Curso Básico de Java 2 By: m @gh SENTENCIA DE CONTROL switch Es una sentencia de Java que se utiliza para seleccionar entre múltiples alternativas. Su sintaxis switch(selector) { case etiqueta 1 : sentencias 1 . case etiqueta n :sentencias n . break. constante y cada etiqueta debe tener un valor diferente de los otros. no se ejecutará ninguna de las opciones. a menos que especifique una acción por defecto (omisión). char o boolean. case etiqueta 2 : sentencias 2 . después de ejecutar el código de case.pdffactory. break. // Opcional By: m @ gh 16 PDF created with pdfFactory Pro trial version www. La expresión selector debe ser de tipo int. . break. Una sentencia break consta de la palabra reservada break seguida por punto y coma. char o bolean. pero no double.. la expresión de control o selector se evalúa y se compara con cada una de las etiquetas del case. la computadora ejecutará el código que sigue al siguiente case. se recomienda su uso. Cada etiqueta es un valor único. } donde. a menos que este absolutamente seguro de que todos los valores de selector están incluidos en las etiquetas case. entonces la ejecución comenzará con la primera sentencia1 y continuará hasta que encuentre una sentencia break (o hasta encontrar el fin de la sentencia de control switch). Si el valor del selector no esta listado en ninguna etiqueta case.

corresponde al Lunes"). public class MenuNu m { public static void main(String arg[]) { int opc.println("Valor pulsado 5. break.in). Syste m. Scanner in = new Scanner(Syste m. Syste m.print("*Elije Opcion (1-5): "). default:System. opc = in.out. Syste m.out.println("Valor pulsado No valido").pdffactory. case 4:Syste m.out.out. break. el usuar io elige opció n y se muest ra su elecció n Fecha: 2-01-07 */ import java. break. corresponde al Viernes"). La aplicación debe ser capaz de distinguir que opción eligió y mostrar en pantalla un mensaje indicando cual ha sido su elección. case 5:Syste m.out.*. case 2:Syste m.println("* 4) Jueves *") .println("Valor pulsado 4.Curso Básico de Java 2 By: m @gh ? Ejemplo 9. break. case 3:Syste m.out.println("Valor pulsado 3.out.println("* 2) Martes *"). corresponde al Martes").println("Valor pulsado 1. } } } By: m @ gh 17 PDF created with pdfFactory Pro trial version www.println("* 1) Lunes *").println("* 3) Miercoles *").println("Valor pulsado 2. Syste m. break. corresponde al Jueves"). break.out. Syste m.util.out. Syste m. switch(opc) { case 1:Syste m. consiste en mostrar un lista de opciones (menú) que simulan los días de la semana.nextInt().out.out. /* Autor: Mart ín Ale jandro Guerra Her nández / m@gh Descripción: Visualiza los días.println("* 5) Viernes *").out .com . corresponde al Miércoles").

break. Syste m. corresponde Martes").read().Curso Básico de Java 2 By: m @gh ? Ejemplo 10. break. case 'I': case 'i': Syste m.out. Syste m. es Jueves"). break. Syste m.*.println("Valor pulsado O.println("* O) Jueves *").com . es Miércoles"). import java.out. Syste m. Syste m.println("Valor pulsado U.io. La aplicación debe ser capaz de distinguir que opción eligió y mostrar en pantalla un mensaje indicando cual ha sido su elección.out.println("Valor pulsado E. default: Syste m.out.println("* Menu de los días de la semana *"). corresponde Lunes"). break. opc = (char) Syste m.out. consiste en mostrar un lista de opciones (menú) que simulan los días de la semana.print("*Elije Opcion:"). es Viernes").println("Valor pulsado A. case 'E': case 'e': Syste m. switch(opc) { case 'A': case 'a':Syste m. case 'U': case 'u': Syste m.out.in.println("Valor pulsado No valido"). public class DiasTxt { public static void main(String arg[]) { char opc. Syste m.out.println("* E) Martes *"). break.out.println("* A) Lunes *").out.println("Valor pulsado I. case 'O': case 'o': Syste m.out.out.println("* U) Viernes *"). break.println("* I) Miércoles *").out.out. Syste m. } } } By: m @ gh 18 PDF created with pdfFactory Pro trial version www.pdffactory.

Curso Básico de Java 2 By: m @gh BUCLES Las estructuras de programación o estructuras de control permiten tomar decisiones y realizar un proceso repetidas veces. denominada cuerpo del bucle se ejecuta. Ejemplo: contador=0. Vuelve el control al paso 1. Sintaxis: Forma 1: Forma 2: while(condicion_bucle) while(condicion_bucle) sentencia.println(“*”). Prueba/condición. sentencian. condicion_bucle. se evalua la condición antes de que se ejecute el cuerpo del bucle. es cualquier construcción de programa que repite una sentencia o secuencia de sentencias un número de veces. se comprueba el valor del contador antes de que comience la repetición de cada bucle (denominada iteración o pasada).com . 3. El comportamiento o funcionamiento de un ciclo o bucle while. antes de que alcance el maximo valor. es la expresión logica. b. comprobada y actualizada para que el cuerpo del bucle se ejecute adecuadamente. Las sentencias que se repiten en un bloque se denomina cuerpo del bucle y cada repetición del cuerpo del bucle se llama iteración del bucle. Son los denominados bifurcaciones y bucles. La sentencia especificada. Si la condición_bucle es verdadera: a. Dicho en otras palabras.. En caso contrario: El control se transfiere a la sentencia siguiente fuera del bucle o ciclo. // Inicialización while(contador<4) // Prueba/condición { Syste m. sentencia. Actualización. cuerpo . } donde. mediante el operador ++) durante cada iteración. La variable de control del bucle debe ser: inicializada. de modo que cuando se ejecuta el mismo.. // Actualización (incremento) } La variable que representa la condición del bucle se denomina variable de control del bucle debido a que determina si el cuerpo del bucle se repite. while es palabra reservada de Java.pdffactory.. contador++. Se evalúa la condicion_bucle 2. al contador se establece con un valor inicial. By: m @ gh 19 PDF created with pdfFactory Pro trial version www. Cada etapa se resume así: Inicialización. La posición de esta condición del bucle es delante del cuerpo del bucle y significa que un bucle while es un bucle pre-test.out. BUCLE O CICLO while Un bucle while tiene una condición del bucle (una expresión logica) que controla la secuencia de repetición. { sentencia1.. es el siguiente: 1. el contador se actualiza (su valor se incrementa en 1. es la sentencia simple o el conjunto de sentencias.

out. Debe utilizar el bucle while. Scanner lee = new Scanner(Syste m.Curso Básico de Java 2 By: m @gh ? Ejemplo 11. su ma=0. public class Nu msI mpares { public static void main(String arg[]) { int num.com . } } } ? Ejemplo 12.*. Syste m. nu m=nu m+2. media.println("La Media es: "+media).println("Lista de Números I mpares 1-30"). public class Su maNu ms { public static void main(String[] args) { int num. import java.out. su ma.println(num).i n). Debe mostrar en pantalla el total y la media de los números. while(num<30) { Syste m. nu m=1. consiste en mostrar en pantalla los números primos de 1 hasta 30 utilizando el bucle while. calcular el total de números capturados y la media de los números.out. } } By: m @ gh 20 PDF created with pdfFactory Pro trial version www. Syste m. cuenta. import java.io.util. hasta que teclee 0").println("Captura Numero s. cuenta++.*. Syste m.out. nu m=lee. cuenta=0.println("Total de Números Capturados: "+(cuenta-1)). su ma=su ma +nu m. aplicación que permite capturar una serie de números y finaliza la captura hasta que el usuario teclee el numero 0. media=0. Syste m.out.pdffactory.out. nu m=1. while(num! =0) { Syste m.print("Nu mero:"). } media=su ma/(cuenta-1).ne xtInt().

*. Scanner lee = new Scanner(Syste m. if(aux==0) cantpar++. Debe mostrar en pantalla la cantidad total de los números pares e impares. aplicación que permite capturar “X” cantidad de números. while(cuenta<cant) { Syste m. cantpar=canti mpar=0.print("Cantidad de Núme ros a Capturar? "). int cantpar.i n). Fecha: 2-01-07 */ import java. } Syste m.pdffactory. } } By: m @ gh 21 PDF created with pdfFactory Pro trial version www. Debe utilizar el bucle while.com .print("Nu mero:").nextInt(). cant. aux=nu m%2.ne xtInt(). la aplicació n det er mina cuant o s son pares y cuant os son impares. nu m=lee. cuenta++. au x=0. public class Nu msParI mpar { public static void main(String[] args) { int num.out. cuenta. cant=lee. au x.out.out.out. Syste m. determinar el total de números capturados que sean pares y cuantos son impares.util.Curso Básico de Java 2 By: m @gh ? /* Ejemplo 13. cantimpar. cuenta=0.println("Total de Numeros Pares: "+cantpar). else canti mpar++.println("Total de Numeros I mpares: "+canti mpar). Autor: Mart ín Ale jandro Guerra Hernández / m@gh Descripción: Capt ura una cant idad de números. Syste m.

tiene la siguiente sintaxis: for(inicialización. import java. es la parte del bucle que incrementa o decrementa la variable de control del bucle. Parte de incrmento_decremento. } } } By: m @ gh 22 PDF created with pdfFactory Pro trial version www. son las acciones o sentencias que se ejecutarán en cada iteración del bucle. Parte de condición_iteración.nu m>1.*.. ? Ejemplo 14. comenzando con el 30 y terminando en 1. sentencia2. Las variables de control pueden ser definidas en esta parte. mientras que la expresión sea verdadera.io.nu m-=2) { Syste m. for(nu m=30. } El bucle for contiene cuatro partes: Parte de inicialización. sentencian. // Imprimir en pantalla 10 veces el mensaje hola for(int i=1. Sentencias.Curso Básico de Java 2 By: m @gh BUCLE O CICLO for El bucle for es el más adecuado para implementar bucles controlados pro contador. El bucle for. incremento_decre mento) { sentencia1. public class Nu msPares { public static void main(String arg[]) { int num.println(“Hola”). …. Syste m.println(num).pdffactory. que inicializa las variables de control del bucle.i<10.out. que son bucles en los que un conjunto de sentencias se ejecutan una vez por cada valor de un rango específico. utilizando el bucle for.out.com . consiste en mostrar en pantalla los números pares. La sentencia for es la mejor forma de programar la ejecución de un bloque de sentencias de un numero fijo de veces. Se pueden utilizar variables de control del bucle simples o compuestas.println("Lista los Numero s Pares del 30-1").i++) Syste m. nu m=1. condición _ iteración. que contiene una expresión lógica que hace que el bucle realice las iteraciones de las sentencias.out.

println("El Valor Máxi mo de la Lista es:"+ma x).*. public class Nu mMa x { public static void main(String[] args) { int num. if(num>ma x) ma x=nu m. Note que se utiliza la clase util. ma x. Syste m.ne xtInt().Curso Básico de Java 2 By: m @gh ? /* Ejemplo 15.cuenta ++) { Syste m. utilizando el bucle for.out. Autor: Mart ín Ale jandro Guerra Hernández / m@gh Descripción: Capt ura 5 números y det er mina cuál de ellos es el valor máximo.out. } } By: m @ gh 23 PDF created with pdfFactory Pro trial version www.pdffactory. for(cuenta=1.in). aplicación que permite capturar una serie de 5 números. } Syste m. cuenta. Debe mostrar en pantalla el máximo número.com .cuenta<=5. Fecha: 2-01-07 */ import java. nu m=in.out.println("Captura 5 Numer os.print("Nu mero:"). Ma xi mo Valor de la Lista").util. ma x=0. Scanner in = new Scanner(Syste m.

} } By: m @ gh 24 PDF created with pdfFactory Pro trial version www. S yst em. importe=0.in). import java. subtotal. Syste m. total=0. subtotal=0. precio=in.nextFloat(). error=in.cuenta<=5.10f).out. el total de la compra. aplicación que permite capturar 5 datos de una compra: nombre del producto.0f. Syste m. error.15f). Debe calcular el importe por producto.").0f. Debe mostrar en pantalla el importe total de la compra e indicar el descuento. si la compra esta entre $2500-$5000 dar un descuento del 5%.print("Precio:$ "). float cant. public class CicloCompra Mcdo { public static void main(String []arg) { String pdto.nextLine(). obtenido="5%". importe.out. obtenido. Scanner in = new Scanner(Syste m. for(int cuenta=1.nextLine().print("Producto: ").out. obtenido="10%". t otal.print("Cantidad: "). precio.nextFloat(). } if(subtotal>5000) { desc=subtotal-(subtotal*.print ln( "Tot al de la co mpra: $"+t ot al+"con un descuent o del:"+obt enid o ). subtotal+=importe.o ut .*.0f.println("Captura 5 Productos. desc=0.pdffactory.05f).com . } total=desc+(desc*.Curso Básico de Java 2 By: m @gh ? Ejemplo 16. } else if((subtotal>2500) && (subtotal<=5000)) { desc=subtotal-(subtotal*. obtenido="0%". Además de otorgar un descuento si el importe de la compra es mayor a $5000 dar un descuento del 10%.cuenta++) { Syste m. la cantidad y el precio. desc. importe=cant*precio. Syste m.out.util. cant=in. } else { desc=subtotal.0f. utilizando el bucle for. pdto=in.

sentencian. ….com . while. Su sintaxis es: do { sentencia1.io.print ln( "Teclee el Text o Deseado. es adecuada cuando se debe asegurar que al menos se ejecute el bucle una vez. Si la expresión es verdadera. }while(letra! ='*').pdffactory. cuando el numero de repeticiones se conoce por anticipado y puede ser controlado por un contador. aplicación que permite capturar texto hasta que el usuario pulse *. do-while. bucle de conteo.Curso Básico de Java 2 By: m @gh BUCLE O CICLO do-while La sentencia do-while se utiliza para especificar un bucle condicional que se ejecuta al menos una vez. for.read(). pero al menos una vez. ? Ejemplo 17. sentencia2. do { letra = (char) Syste m. } } COMPARACIÓN DE LOS BUCLES while. entonces se repite la ejecución de las sentencias. el uso más frecuente es cuando la repetición no esta controlada por contador. el test de la condición precede a la ejecución del cuerpo del bucle. también es adecuado para bucles que implican control no contable del bucle con simples etapas de inicialización y de actualización.*. Se debe utilizar cuando se desea saltar el bucle si la condición es falsa. import java. Este proceso continua hasta que la expresión es falsa. Esta situación se suele dar en algunas circunstancias en las que ha de tener la seguridad de que una determinada acción se ejecutará una o varias veces. Se mostrará en pantalla todos los caracteres pulsados por el usuario. By: m @ gh 25 PDF created with pdfFactory Pro trial version www. public class CicloTexto { public static void main(String []arg) throws IO Exception { char letra..o ut . Para t erminar pulse * y E nt er") . el test de condición le precede a cada repetición del bucle. }while(expresión) La construcción do comienza ejecutando las sentencias. for y do-while.in. S yst em. el cuerpo del bucle puede no ser ejecutado. Después se evalúa la expresión.

println("Elijio Su ma ").println("El resultado de: "+nu m1+" + "+nu m2+" = "+result).print("Nu mero ").util.print("Elije Opcion:").out. float num1. Syste m.println("El resultado de: "+nu m1+" .print("Nu mero "). Syste m.nextInt().print("Nu mero ").ne xtFloat().ne xtFloat(). opcion=lee. nu m2. Debe mostrar en pantalla los números de la operación y el resultado. Resta"). Syste m. nu m1=lee.out.out.out.println("4. nu m2=lee.out.*. if(opcion==1) { Syste m.out.println("1. result=nu m1+nu m2.print("Nu mero ").println("5. Syste m. Syste m. nu m1=lee.out.ne xtFloat(). } } By: m @ gh 26 PDF created with pdfFactory Pro trial version www.ne xtFloat().out.out. nu m2=lee. result=nu m1-nu m2. para que el usuario elija la opción y si es necesario capture los números para realizar la operación. Salir"). el cuál lo debe mostrar al menos una vez. import java.i n). Suma").println("Menu:"). } if(opcion==2) { Syste m.out.com . } }while(opcion! =5 || opcion! =5).println("2. Syste m.out.out.out. Syste m. Syste m.pdffactory.out." +nu m2 +" = "+result).println("3. Syste m. Syste m. Suma"). Scanner lee = new Scanner(Syste m. do { Syste m. aplicación que contiene un menú de las operaciones aritméticas. public class CicloMenu { public static void main(String []arg) { int opcion. Syste m.println("Elijio Resta "). result.Curso Básico de Java 2 By: m @gh ? Ejemplo 18. Resta").out. Syste m.

Curso Básico de Java 2 By: m @gh ARREGLOS (Arrays) Un array (lista o tabla) es una secuencia de datos del mismo tipo. cad[ ]={' m'. tal como se asignan valores a variables. etc. Un array puede contener. El segundo formato es array solo el identificador al que le siguen los corchetes. Estas constantes se separan por comas y se encierran entre llaves. 'g'} // define un array de 2 elementos de tipo char y se inicializa ? Ejemplo 19. // edad contiene 5 elementos de tipo int float [] ma x. txt es una variable de tipo char.1. // tanto nums como sumas son declarados arrays de tipo int. "Rojo"}. int [] edad = new int [4]. Se pueden colocar de 2 formas tipo_dato [] identificador.cta++) { Syste m. El tipo de de elementos almacenados en el array puede ser cualquier tipo de dato tales como: char. // tanto max como min contienen 5 elementos de tipo float Se deben asignar valores a los elementos de un array antes de utilizarlos. Ejemplos: char cad[]. Syste m.*. el total de personas de las ciudades del estado de Michoacán. Los datos se llaman elementos del array y se numeran consecutivamente de 0. Para asignar valores a cada elemento del array. int [] nums.out. por ejemplo: la edad de los alumnos.2…. String colores [ ]= {"Azul". // cad es un array tipo char.3.pdffactory.n. "Amarillo".util. import java. las temperaturas de cada dia del mes de una ciudad. el tamaño del array se puede determinar automáticamente por las constantes de inicialización.com . min = ne w float [4]. 'g'.5} // define un array de 5 elementos de tipo int y se inicializa char txt[] = {' m'. 'h'} nu ms[1]=6. excepto que se debe indicar al compilador que es un array y esto se hace con los corchetes. La declaración de un array es similar a otros tipos de datos.cta<=4. "Blanco". como los siguientes ejemplos: int valores [ ]= {1. El primer formato indica que todos los identificadores son arrays del tipo de dato. '@'. } } } By: m @ gh 27 PDF created with pdfFactory Pro trial version www. public class ArrayColors { public static void main(String []arg) { int cta. como ejemplo: nu ms[0]=7. "Verde".4. for(cta=0. su ma s.2.println("Lista los Colores"). t xt.. tipo_dato identificador[].println("Color en la Posicion: "+cta+" "+colores[cta]). Cuando se inicializa un array. int o float.out. aplicación que por medio de un arreglo muestra una lista de colores.

println("Aplicacion que Captura Palabras"). Syste m.out.in). Syste m.util.out.println(palabra[cta]).cta<100. aplicación que le permite al usuario capturar texto y lo almacena en un arreglo.*.i<100. for(int i=0.equals("salir")) break.equals("salir")) break.com .println(" Hasta Que Teclee salir").out. Posteriormente muestra en pantalla el texto tecleado. Syste m. } } } By: m @ gh 28 PDF created with pdfFactory Pro trial version www.Curso Básico de Java 2 By: m @gh ? /* Ejemplo 20.cta++) { if(palabra[cta].nextLine(). if(palabra[i].println("\nEste su texto:\ n").out.i++) { palabra[i]=in. for(int cta=0.pdffactory. Scanner in = ne w Scanner(Sy ste m. public class Editor { public static void main(String []arg) { String [ ]palabra= new String[100]. } Syste m. Autor: Mart ín Ale jandro Guerra Hernández / m@gh Descripción: Capt ura t ext o y el co nt enido lo guarda en arreglo Fecha: 2-01-07 */ import java.

i<no mbres.out. Posteriormente los ordena a través del método de ordenación de la burbuja.cta ++) { Syste m.com . no mbres[ j]= no mbres[i].Curso Básico de Java 2 By: m @gh ? /* Ejemplo 21. post er ior ment e los ordena a t ravés del Mét odo de Ordenació n de la Bur buja.i++) { if(no mbres[i]. } } } for(int cta=0. aplicación que almacena en un arreglo una lista de nombres.util.cta<no mbres."Ana".*. Syste m.pdffactory.length. Fecha: 2-01-07 */ import java.length. "Luis"}. for(int j=0."Alejandro". public class OrdenaNombres { public static void main(String []arg) { String no mbres[ ]={" Martin".println(nombres[cta]). Autor: Mart ín Ale jandro Guerra Hernández / m@gh Descripción: List a de no mbres almacenados en arreglo."Elsa". j<no mbres.co mpareTo(no mbr es[j])<0) { String au x= no mbres[ j].println("Aplicacion que Ordena los Nombres de la Lista. j++) { for(int i=j+1."Diana". } } } By: m @ gh 29 PDF created with pdfFactory Pro trial version www.out.length. no mbres[i]= aux."). Muestra en pantalla la lista de los nombres ordenados en forma ascendente.

Muestra en pantalla la lista de los números ordenados en forma ascendente. } while(total>10). import java.in).nextInt(). j<total.*. } } } Syste m.cta++) { Syste m.print("\t"+nu m[cta]).out.println("Captura de Numeros").Curso Básico de Java 2 By: m @gh ? Ejemplo 22.print("Nu mero("+x+") :"). for(int x=0.i++) { if(nu m[i]< nu m[ j]) { int aux= nu m[ j]. nu m[i]= au x. x<total.out.println("Cantidad de Nu meros a Capturar? "). Scanner in = ne w Scanner(Syste m.nextInt(). Posteriormente los ordena a través del método de ordenación de la burbuja.com . do { Syste m. nu m[ x]=in. aplicación que almacena en un arreglo una lista de números. Syste m.println("\n Lista de Nu meros Ordenados:").pdffactory. int num[ ]= ne w int[10]. x++) { Syste m. } for(int j=0. nu m[ j]= nu m[i]. total=in. public class OrdenaNums { public static void main(String []arg) { int total.cta<total.out. for(int cta=0.util.out. } } } By: m @ gh 30 PDF created with pdfFactory Pro trial version www.j++) { for(int i=j+1.out.i<total.

ESTRUCTURA DE UN APPLET Casi todos los applets sobrescriben una serie de métodos que proporcionan el mecanismo básico mediante el que el navegador o el visor de applets conecta con el applet y control su ejecución. // import java.*. stop(). Como se muestra en esta estructura: import java. tiene la eventos. se incluye en un archivo HTML utilizando la etiqueta applet.com .a wt. dicho de otra forma es un programa basado en ventanas.applet.awt. // public class No mbre_applet extends Applet { public void init() {// Código de inicialización} public void start() {// Código que co mienza o reanuda la ejecución } public void stop() {// Código que detiene la ejecución} // Se ejecuta cuando termina el applet. es través de una página web y ejecutable en la decir desde la línea de comando. ni manejo de Al ejecutarse desde un navegador.Curso Básico de Java 2 By: m @gh INTRODUCCIÓN A LOS APPLETS Los applets son aplicaciones gráficas que aparecen en una zona de la ventana del navegador. gráficos e interfaz de usuario. Sino que es gestionada por varios métodos del AWT.applet y java. Un applet espera a que ocurra un evento. ventaja de la estructura: una ventana. manejo de eventos.pdffactory. start(). Después el applet debe ejecutar la acción que desee el programador y devolver el control rápidamente al AWT. incluido en JDK. Una vez que se ha compilado un applet.*. El paint() lo define la clase Component. El AWT (Abstract Windows Toolkit) notifica el evento al applet llamando a un gestor de eventos para que lo trate. JVM del navegador. Es el último método que se ejecuta public void destroy() {// Código para la finalización definitiva} // Es llamado cuando se restaura la ventana del applet public void paint(Graphics g) {// Código para dibujar el contenido en la ventana} } By: m @ gh 31 PDF created with pdfFactory Pro trial version www. Todos los applets son subclases de la clase applet. Diferencias entre Aplicaciones y Applets Aplicaciones Sencillas en Java Applets en Java Permite desarrollar aplicaciones que se Permite desarrollar módulos descargables a ejecutan en el intérprete local de JSDK. Los applets son ejecutados por un navegador de internet o bien por un visor de applets (appleetviewer). Los applets son conducidos u orientados a eventos. Cuatro de estos metodos son: init(). Cualquier applet debe importar los paquetes java. destroy() los define el applet. No permiten interfaz grafica. La ejecución de un applet no comienza con el main(). El usuario es el que debe iniciar una interacción con el applet.

Incrustar un Applet en una Pagina Web La etiqueta applet se utiliza para arrancar un applet tanto desde un archivo HTML como desde un visor de applets.applet. import java.com . La sintaxis para una etiqueta applet. Mozilla Firefox permiten ejecutar varios applets en una unica pagina.a wt. renglón). Esta clase permite definir lo que se suele denominar lienzo (o Canvas). //Envia mo s un mensaje a la vent ana // en las coordenadas: Co l.awt. La clase Graphics dispone de muchos métodos para dibujar en el lienzo. pues en esta clase y en sus clases padre se definen los métodos que deberemos sobreescribir para que nuestros applets respondan a los eventos generados desde el navegador.20. g. que nos permitirán dibujar en el rectángulo asignado al applet. En la primera importamos la clase Applet. public void paint(Graphics g) { } Este es el método que debemos sobreescribir para dibujar en el rectángulo asignado a nuestro applet.*. El lienzo es precisamente ese rectángulo del que estamos hablando todo el rato.applet. La segunda permite importar las clases de la librería AWT.drawString("Mi 1er Applet". import java. lo que esta entre corchetes es opcional: By: m @ gh 32 PDF created with pdfFactory Pro trial version www. Un visor de applets ejecutará cada etiqueta applet que encuentre en una ventana independiente. mientras que navegadores como: Netscape Navigator. public class HolaJava extends Applet { public void paint(Graphics g) // Inicia lizamos el mét odo Grafico { g. Éste. En este caso el texto se pintará 20 píxeles a la derecha del borde izquierdo de la pantalla y otros 50 píxeles abajo del borde de superior. diseñamos un applet que envie a la ventana un mensaje en las posiciones especificadas (columna. public class HolaJava extends Applet { } Nuestros applet siempre van a ser clases derivadas de Applet. incluir como mínimo estas dos sentencias de importación.Applet. HotaJava.*.50).20.Applet. import java.pdffactory. de la cual derivaremos nuestros applets. Internet Explorer. concretamente.drawString("Mi 1er Applet".Curso Básico de Java 2 By: m @gh ? Ejemplo 23. nos permite dibujar un texto en la posición que queramos. Reng } } import java. En nuestro applets deberemos. Recibe un parámetro que es una referencia a una instancia de tipo Graphics.50).

Curso Básico de Java 2 By: m @gh <applet [codebase=url] code=archivo Class [alt=texto_alternativo] width=pixels heig ht=pixels [align=tipoAlineamiento]> </applet> codebase: es un atributo opcional que especifica el URL del código del applet. para nuestro ejemplo. absbottom. se abre navegador con el contenido de esta pagina. Puedes utilizar un editor de páginas web o cualquier editor de texto. texttop. Y en el cuadro Nombre: Hola. right.com . middle. bottom. clic en Archivo / Guardar como. alt: es un atributo opcional que especifica el mensaje que se debe visualizar en caso de que el navegador entienda la etiqueta applet pero no pueda ejecutar applets Java. width y height: son atributos necesarios que dan el tamaño del area de visualización de un applet (en píxeles). solo se visualizará el mensaje: Mi 1er Applet By: m @ gh 33 PDF created with pdfFactory Pro trial version www. Del cuadro de dialogo: en el cuadro Tipo: Todos lo archivos. baseline. code: es un atributo necesario y proporciona el nombre del archivo que contiene el archivo compilado . busca el archivo: Hola.pdffactory. Puede tomar los siguientes valores: left. Este es diferente al texto alternativo de HTML. haciendo clic en Inicio / Programas / Accesorios / Bloc de notas: <HTML> <BODY> <APPL ET CODE="HolaJava.class" W IDTH="200" HEIGHT="70"> </APPL ET> </BODY> </HTML > Cuando termines de teclear estas líneas de código. que es el directorio donde se buscará el archivo de clase ejecutable del applet.html has doble clic sobre este. para nuestro ejemplo usaremos el Bloc de notas.ht ml Ahora ingresa al Explorador de Windows o MiPC. La página que desarrollaremos es la siguiente. Si desea incluir su applet en una página web. absmiddle. top. align: es un atributo opcional que especifica la alineación del applet.class del applet.

y1. yDest).altoArco) Equivalentes a los anteriores. consideraremos que todos los parámetros son enteros: drawStri ng(St ring texto.alto.com . drawPol ygon(int[ ] coordenadasX. que representan columna.a ncho.alto. La forma del mismo vendrá dado por los dos últimos parámetros.a nc ho.y.x.alto) Dibujan una elipse con esquina izquierda superior en (x.numCoordenadas) fillPolygon(i nt[ ] coordenadasX. pero dibujan un borde para dar la sensación de que está elevado o hundido (dependiendo del valor del último parámetro).y) y tienen el ancho y alto especificados.a ncho. draw3DRect(x. drawLine(x1.alto) fillRect(x. copyArea(xO rigen. y. Si son iguales dibujará un círculo.xDest.y.a nc ho.alto.pdffactory.alto.ang ulo Inicio.a ncho.y.i nt[ ] coordenadasY.y. y.numCoordenadas) Dibuja un polígono cerrado del número de puntos especificado en el último parámetro.alto) clearRect(x.anc ho.boolean el evado) Equivalentes a los primeros. drawRoundRect(x. By: m @ gh 34 PDF created with pdfFactory Pro trial version www.anchoArco. un rectángulo cuya esquina superior izquierda está en las coordenadas (x. rellenar y limpiar.a nc ho. y. Métodos de dibujo Mientras no se especifique. draw Arc(x.alto. angulo Arco) fillArc(x. yO rigen.anc ho Arco.y).a ngulo Arco) Dibuja una arco cuyo primer vértice está en (x.alto. drawRect(x. drawOval(x.y) y el segundo en (x+ancho.Curso Básico de Java 2 By: m @gh CLASE Graphics La clase Graphics dispone de más métodos aparte de drawString.a nc ho.a nc ho.y2). y.x2.y) y el ancho y alto especificados.yDest) Copia el área cuya esquina superior izquierda está en (xOrigen.alto) fillOval(x.anguloInicio.a ncho. fila. y2) Dibuja una línea entre las coordenadas (x1. respectivamente.y1) y (x2.alto.i nt [ ] coordenadasY. La forma y tamaño de dichas esquinas viene dada por los dos últimos parámetros.boolean elevado) fill3DRect(x.y+alto). que nos permitirán dibujar figuras e imágenes.yOrigen) y de ancho y alto especificados a la zona que comienza en (xDest.alto) Son tres métodos encargados de dibujar.altoArco) fillRoundRect(x.a ncho. y.a nc ho.y. pero con las esquinas redondeadas.y.y) Escribe un texto a partir de las coordenadas (x.

white). 10. catch(InterruptedException e) {e. 10+i*10. //Est ablece co lor azul g.*.yellow). //Dibuja un rect ángulo de co lor blanco while(i<=10) { g.i++) { g. 50+i*10). Después de 5 segs. // Est ablece co lor negro g. // Dibuja cuadros rellenado s g. 50+i*1 0. } i=1.fillRect(0.fillOval(10+i*10.blue). diseñamos un applet que dibuje en la ventana: Líneas. 50+i*10). si es necesar io muest ra el error. 10+i*10.applet. //Est ablece co lor negro g. 50+i*10.. 10+i*10).rc=250.sleep(5000). 50+i*10). //Dibuja círculos } // fin del for try { Thread. //Dibuja cuadros g.Applet.com . int gc=10.i<=10.bc=150. 250.a wt. } // fin del while } // fin paint } // fin de class By: m @ gh 35 PDF created with pdfFactory Pro trial version www. //Dibuja cír culo s rellenado s i++. // Est ablece co lor azul g. //Dibuja líneas g. } // Inicia liza el Manejador de Errores con “t ry” //Ret arda el sigu ient e proceso por 5 seg.drawRe ct(10+i*10. 10+i*10. 50+i*1 0. import java. 50+i*10).setColor(Color. 50+i*10. for(i=1. // At rapa el error que se genere “cat ch”. public class Figuras extends Applet { public void paint(Graphics g) { int i=1.fillRect(10+i*10.setColor(Color.pdffactory. //Est ablece co lor g.drawLine(10. Círculos y Cuadros en las coordenadas y con los colores especificados.printStackTrace(). 600). 0. //Est ablece co lor blanco g. 10+i*10.drawOval(10+i*10.Curso Básico de Java 2 By: m @gh ? Ejemplo 24.black). g.setColor(Color.black).setColor(Color. import java.blue).setColor(Color. 800.setColor(Color. vuelve a dibujar: Círculos y Cuadros rellenados con los colores y en las coordenadas especificadas.

drawO val(110-i * 10. } // fin del for } // fin del paint } // fin de class By: m @ gh 36 PDF created with pdfFactory Pro trial version www.Applet.i<=6.255. import java. i * 20). Si desea establecer el color de fondo de una ventana de un applet debe utilizar setBackground(). Para poder cambiar dicho color deberemos utilizar el método setColor().0 Amarillo Yellow 255.64. que recibe un único parámetro de tipo Color. 110-i * 10. // Dibu ja círculo s de co lores especificados por set Color g.bc=10.0.blue).255. que por defecto es negro.com .i++) { // Co lo ca el co lor co mbinado por RGB g. i * 20. setBackground(Color.0.255 Rojo red 255. lineas.applet.0 Negro Black 0.175 Gris claro light_gray 192.64 Magenta magenta 255.(bc*i)+10)).0 Gris gray 128. import java.128 Rosa Pink 255.175.255 Gris obs.128. etc) debe usar setForeground() La clase Color dispone de varias propiedades estáticas que contienen los colores comunes: Color Constante Valor RGB Color Constante Valor RGB Naranja Orange 255.0 Azul blue 0.200.192. Pero si desea establecer el color de frente (color de texto.a wt.gc=50.setColor(new Color(rc. Y pueda crear instancias de color por medio de constructores para definir colores menos comunes.192 Cyan Cyan 0. // Est ablece co lor de fondo azul for(i=1.Curso Básico de Java 2 By: m @gh Clase Color Graphics almacena internamente el color con el que pinta todo. public class GrafCirculos extends Applet { public void paint(Graphics g) { int i=1.pdffactory.(gc*i)-45.*.255 ? Ejemplo 25.0 Verde green 0.0. dark_gray 64.255 Blanco White 255.255.0. int rc=255. diseñamos un applet que dibuje en la ventana: Círculos.255.

showMessageDialog( nu ll. El usuario puede escribir cualquier cosa en el espacio del cuadro de dialogo de entrada. Cuadro de dialogo que solo tiene un mensaje.icono). Sintaxis: variable_tipo_texto=JOptionPane.showInputDialog("texto a mostrar").sho wInputDialog("Introduce No mbre:"). debe utilizar showMessageDialog de la clase JOptionPane del paquete javax. Si el usuario quiere mostrar resultados o valores a través de un cuadro de dialogo. int fecha=2007. "Manual de Java2 ". WARNING_MESSAGE JOpt io nP ane.ERROR_MESS AGE JOpt io nP ane. Para ello va a utilizar el método showInputDialog de la clase JOptionPane del paquete: javax. "texto a mostrar”.swing.Curso Básico de Java 2 By: m @gh CUADROS DE DIALOGO La forma simple de entrada de datos en Java es similar a mostrar la salida de la ventana de comandos con los métodos print o println del System.INFORMATION_MESSAGE JOpt io nP ane. Cuadro de dialogo usado para que el usuario responda. Mensaje del Cuadro de Dialogo JOpt io nP ane. Eje mplos: String nombre =”Martin Alejandro Guerr a Hernandez”. JOpt io nP ane.com . String nombre.P LAIN_MESS AGE By: m @ gh Icono Ninguno Descripción Cuadro de dialogo que indica error al usuario.INFORMATION_MESSAGE). Cuadro de dialogo que advierte al usuario un problema. "Autor:"+no mbre. 37 PDF created with pdfFactory Pro trial version www. JOpt io nP ane.out tiene capacidades limitadas.pdffactory. no mbre=JOptionPane. Sintaxis: JOptionPane.INFORMATION_MESSAGE). Por esta razón generalmente recibimos la entrada del usuario a través de un componente GUI como un cuadro de dialogo de entrada.”titulo”.sho wInputDialog("Introduce Nu mero:"). Eje mplos: int numero. JOpt io nP ane. showMessageDialog( nu ll. Cuadro de dialogo con mensaje informativo para el usuario. "Curso de Java Básico ".showMessage Dialog(null. nu mero=JOptionPane.swing. "Año:"+fecha. JOpt io nP ane.QUESTION_MESS AGE JOpt io nP ane.

edads=JOptionPane. import java x.blue). // Var iable de Clase t ipo numér ica public void init() { int su ma. } // fin del while pro m=su ma/i.parseInt(edads).25).25.sho wInputDi alog("Introduce Edad ("+i+")").Curso Básico de Java 2 By: m @gh ? Ejemplo 26. public class Pro mDialogo extends Applet { int prom.*. t it ulo. diseñamos un applet que capture la edad de 3 personas. while(i<3) { // Muest ra un Cuadro de Dialogo. icono de Infor mació n JOptionPane. import java. "Promedio de Edad: "+pro m. su ma=edad =pro m=0. Debe visualizar el valor del promedio en un cuadro de dialogo y en la ventana del applet. "Edad Pro medio".10. edad=Integer. Debe calcular el promedio de edad. utilizando cuadros de dialogo. } // fin del paint } // fin de class By: m @ gh 38 PDF created with pdfFactory Pro trial version www. int i=0.com .drawString("Pro medio de Edad"+p ro m. } // Fin de Init public void paint(Graphics g) { g.setColor(Color.a wt.200.drawLine(15. i++. // Cuadro de Dialogo: con el t ext o y valo r del Pro medio. // Co nviert e el t ext o a valor numér ico ent ero.applet. String edads. su ma =su ma+edad.JOptionPane. // Dibuja Línea // Visua liza mensa je most rando el result ado de la var iable clase g.swing. import java.Applet.edad.*. // Est ablece el co lor azul g. retorna un valor de t ipo t exto.10).INFORMATION MESSAGE).pdffactory.sho wMessageDialog(null.

Si deseamos obtener una URL distinta deberemos importar esa clase (java. Por ejemplo. Por otro lado. incrustaremos la foto de Anette: ? Ejemplo 27. No vamos a ver estos objetos muy a fondo. // Cr eamo s el o bjet o img de t ipo I magen public void paint(Graphics g) { // Carga la imagen de la posic ió n especificada. Para hacerlo utilizaremos el método: drawImage( Image img.a wt.com . URL getCodeBase() Devuelve la URL donde está el applet (excluyendo el nombre del archivo). jpg").Curso Básico de Java 2 By: m @gh MANEJO DE IMÁGENES Aún cuando podemos hacer cosas vistosas con figuras.ImageObserver observador ) Vemos que necesitamos un objeto Image y otro ImageObserver y de esas cosas no sabemos todavía. //Visualiza la imagen dentro del applet. Para mostrar la imagen se utiliza el método paint().int y.this). import java. no estaría de más poder hacer cosas con imágenes.applet. } } By: m @ gh 39 PDF created with pdfFactory Pro trial version www.URL) y crear uno pasándole una cadena como parámetro al constructor conteniendo la URL.. String archivo) Asigna la imagen contenida en la URL donde se encuentre el archivo que contiene la imagen que queremos presentar y el nombre de ese archivo. import java.pdffactory. public class Foto extends Applet { I mage i mg. escr iba no mbre de l archivo img = getI mage(getDocu mentBase (). Normalmente crearemos un objeto Image por medio del método de Applet getImage(): Image img = getImage(URL base. que son bastante más espectaculares. Normalmente. al igual que hemos hecho para pintar cosas.100. en la posición especificada. g. diseñamos un applet que visualiza la fotografía de una persona. Image es un objeto que representa a la imagen. "Anette. ImageObserver es un interfaz (que un antepasado de Applet implementa) que nos ofrece información sobre la imagen según la imagen se carga de la red.drawI mage(i mg.. referenciando al objeto actual. se realiza el getImage() en el método init() del applet.Applet. ya que en el momento en que ejecutemos este método comenzará la carga de imágenes desde Internet y eso conviene hacerlo cuanto antes. Normalmente obtendremos esa dirección a partir de la página donde esté la página HTML o nuestro applet.int x.*.100.net. Para averiguarlo disponemos de dos métodos en la clase Applet: URL getDocumentBase() Devuelve la URL donde está la página HTML (excluyendo el nombre del fichero).

dialogs. Button (botones). add(dos). Label(“cadena”. int how). Component. panels. compObj. cuando ya no necesita utilizar más el control. Puede eliminar a todos los controles utilizando removeAll(). debe utilizar remove() que esta definido en la clase Container. Obj.CENTER). por defecto es windows.com . Para hacerlo. Label dos = new Label("2 dos". List (lista desplegable) Scrollbar (barras de desplazamiento) y las siguientes subclases: TextField (cajas de texto) y TextArea (área de texto). dialogs. primero hay que crear una instancia del control deseado y después añadirlo a la ventana llamando a add(). agrega el control deseado al componente indicado. Un gestor de organización posiciona automáticamente los componentes dentro de un contenedor. se refiere a: frames. Una vez que se ha añadido el control. que esta definido en la clase Container. la apariencia de una ventana viene determinada por la combinación de controles que esta contiene y por el gestor de organización utilizada para colocarlos. se refiere es una instancia al control que se quiere añadir. puede eliminarlo de la ventana. Debe utilizar el método add. será visible en la ventana. La segunda crea una etiqueta que contiene la cadena especificada. Añadir y Eliminar Controles Para incluir un control en la ventana es necesario añadirlo a la ventana. Control Label (etiquetas) Una etiqueta es un objeto y contiene una cadena que muestra en la ventana.Curso Básico de Java 2 By: m @gh HERRAMIENTAS GRAFICAS DE AWT Los controles son componentes que permiten al usuario interactuar con la aplicación de varias maneras. // Agrega las dos et iquet as cr eadas a la vent ana add(uno). Las etiquetas son controles pasivos que admiten interacción con el usuario. RIGHT. su sintaxis: Co mponent add(Co mponent co mpOb j) Donde: Component. La primera crea una etiqueta que contiene la cadena especificada. add. Algunas veces. es una referencia al control que se quiere eliminar. Su sintaxis: void remove(Co mponent ob j) Donde: remove.pdffactory. AWT soporta los siguientes tipos de controles: Label (etiquetas). elimina el control deseado del componente indicado. por defecto es windows. Checkbox (casillas de verificación). Label define los siguientes constructores: Label(“cadena”).Label. Para hacerlo. CENTER) Ejemplo: // Creació n de dos et iquet as Label uno = new Label("1 uno"). alineando el texto en la posición indicada (LEFT. se refiere a: frames. 40 By: m @ gh PDF created with pdfFactory Pro trial version www. Por tanto. panels.

addActionListener(this).Curso Básico de Java 2 By: m @gh Clase TextField (cajas de texto) Implementa una area de entrada de texto de una sola linea que se llama control de edición. add(tres). Los Checkbox se pueden utilizar individualmente o como parte de una grupo. Ejemplo: // Creació n de dos cajas de t ext o uno = ne w TextField(10).addActionListener(this). n. // Define un método para recibir los eventos que se generen en los // botones s. Define los siguientes constructores: TextField (int numchars) TextField (String str) TextField (String str. tres. Los campos de texto (textfield) permiten al usuario introducir texto y la edición de texto utilizando los cursores y las teclas. El textfield es una subclase de TextComponent. Para cambiar el estado de un Checkbox solo hay que pulsar sobre él. de acuerdo a los siguientes constructores: By: m @ gh 41 PDF created with pdfFactory Pro trial version www. Los botones son objetos de la clase button. 10). tres = ne w Te xtField("1 uno". add(n). El tercero inicializa el campo de texto con el string str y además especifica su tamaño. // Agrega las dos cajas de t ext o creadas a la vent ana add(uno).addActionListener(this). Control Checkbox (casillas de verificación) Es un control que se utiliza para activar o desactivar una opción. // Agrega lo s dos bot o nes creados a la vent ana add(s). Está formado por un pequeño cuadro que puede contener o no una marca de comprobación. Ejemplo: // Creació n de dos boto nes s = ne w Button(). El segundo crea un boton que contiene str como nombre de etiqueta. int numchars) El primer formato crea un campo de texto con el tamaño especificado en numchars.pdffactory.com . // Se regist ra para recibir lo s event os de acció n que se generen en las do s // cajas de t ext o uno. Proporciona dos contructores: Button () Button (String str) El primero de ellos crea un botón vacío (sin etiqueta). n = ne w Button ("no").addActionListener(this). Hay una etiqueta asociada a cada Checkbox que describe que opción representa. Control Button (botones) Es un componente que contiene una etiqueta y que genera un evento cuando es pulsado. El segundo campo de texto inicializa el campo de texto con el string dado por str.

com . aficion.addActionListener(this). numeros. multipleselect).add(“rojo”).Curso Básico de Java 2 By: m @gh Checkbox (String str). 42 By: m @ gh PDF created with pdfFactory Pro trial version www.add(“amarillo”). // Agrega t res element os a la list a de numeros nu meros. true). // Se añaden las list as creadas a la vent ana add(colores). el Checkbox está inicialmente seleccionado. alimentos = ne w Checkbox ("Fruta"). si on es true. en caso de ser false solo puede seleccionar un elemento. el valor numrows especifica el número de elementos que puede contener la lista.add (“dos”).addItemListener(this). add (nu meros). Control List (lista deplegable) Este control proporciona una lista de selección compacta con desplazamiento que permite realizar la selección del elemento o los elementos especificados. El tercer formato crea un Checkbox cuya etiqueta viene especificada por str y cuyo grupo está especificado por cbgroup. si este Checkbox no pertenece a ningún grupo debe ser nulo. nu meros. Boolean on). true). colores.add(“uno”). colores. // Define un método para recibir los eventos que se generen en las // listas. null. bolean on). // Define un método para recibir los eventos que se generen en las // casillas de verificación.addIte mListener(this). alimentos. En el segundo formato numrows especifica el número de elementos que puede contener la lista y si multipleselect es true el usuario puede seleccionar dos o mas elementos a la vez. El primer formato crea un Checkbox cuya etiqueta está especificada en str y el estado del Checkbox aparece como no seleccionado. colores. Checkbox (String str. // Agrega t res element os a la list a de co lores colores.addActionListener(this).pdffactory. CheckboGroup cbgroup.add(“azul”). Ejemplo: // Creació n de dos list as desplegables colores = new List (3. // Agrega lo s dos casillas de ver ificació n creadas a la vent ana add(aficion). La primer versión. Boolean. add(alimentos). List (int numrows. El segundo formato permite establecer el formato inicial del Checkbox. Checkbox (String str. nu meros = ne w List (3). List tiene los siguientes constructores: List (int numrows). Ejemplo: // Creació n de dos casillas de ver ificacio n aficion = new Checkbox (“Deportista”.

addAdjusmentListener(this). max. los valores minimo y maximo de los elementos se especifican con min. Cada extremo tuene una flecha en la que puede hacer clic para mover una unidad en la dirección de la flecha el valor actual de la barra de desplazamiento. el numero de unidades que representa la altura del cuadro es tamaño.VERTICAL. // Define un método para recibir los eventos de aju ste en las barras // de desplazamiento. el valor inicial de la barra se pasa son initialvalue. horizontal.com . en relación a sus valores mínimo y máximo lo indica un cuadro o caja de deslizamiento. add(horizontal). // Agrega las dos barras de desplazamient o a la vent ana add(vertical). Ejemplo: // Creació n de dos barras de desplazamiento vertical = new Scrollbar (Scrollbar. int min. 0. El primer formato permite crear una barra de desplazamiento. vertical. 0. Una barra de desplazamiento puede tener varios elementos. El valor actual de la barra de desplazamiento. By: m @ gh 43 PDF created with pdfFactory Pro trial version www. int max). int tamaño.Curso Básico de Java 2 By: m @gh Control Scrollbar (barras de desplazamiento) Este control se utiliza para seleccionar valores continuos entre un mínimo y un máximo especificados. 1.HORIZONTAL. El segundo formato permite crear una barra de desplazamiento. Scrollbar (int style. horizontal = new Scrollbar (Scrollbar. 1. Las barras de desplazamiento puedes ser horizontales o verticales. La clase Scrollbar define los siguientes constructores: Scrollbar (int style). height). width). style define si es vertical u horizontal.pdffactory. style define si es vertical u horizontal. int initialvalue. que el usuario puede arrastrar hasta una nueva posición. 0.addAdjusmentListener (this). 0.

applet.Curso Básico de Java 2 By: m @gh ? Ejemplo 28. repaint(). import java. public class MenorMayorEdad e xtends Applet imple ments Ad just mentListener { private Scrollbar barra. 0. g. 50.getValue().Applet. 50. private int edad = 0. 0. 70).*. 50). } } public void adjust ment ValueChanged(Ad just mentEvent e vent) { edad = barra.a wt. public void init() { barra = new Scrollbar(Scrollbar.pdffactory. } public void paint(Graphics g) { if (edad > 17) { g. 70).drawString ("eres menor de edad ". 5 0. 100). } else { g. import java. permitiendo al usuario modificarla a traves del Control Srcollbar.drawString("Tu edad es " + edad.event.addAdjust mentListener(this). diseñamos un applet que visualice la edad de la persona. import java.HORIZONTAL. 50). 1. 5 0. add(barra). *. } } By: m @ gh 44 PDF created with pdfFactory Pro trial version www. g.drawString ("eres mayor de edad".a wt.com . barra.drawString("Tu edad es " + edad.

} public void paint(Graphics g) { g.addActionListener(this).*. public class ContarPulsaciones extends Applet imple ments ActionListener { private Button contador.*.Curso Básico de Java 2 By: m @gh ? Ejemplo 29. } } By: m @ gh 45 PDF created with pdfFactory Pro trial version www. private int cuenta = 0. 50). diseñamos un applet que permite al usuario conocer el numero de veces que ha presionado el boton.a wt. add(contador). import java.event.pdffactory.com . public void init() { contador = ne w Button("Opri ma aquí"). import java. contador. 10. import java.drawString("Ocasiones que ha presionado el boton: " + cuenta. repaint().a wt. *. } public void actionPerformed(ActionEvent event) { cuenta++.applet.

50. public class VerificaEdad extends Applet imple ments ActionListener { private TextField edadCampo.a wt.100).*. import java.event.get Text()).addActionListener(this). else g.drawString("Eres un Joven".100).applet. private int edad.parseInt(edadCa mpo. public void init() { edadCa mpo=ne w Te xtField(10). repaint(). import java. else if (edad >10) g. } public void paint (Graphics g) { g. } public void actionPerformed(ActionEvent event) { edad=Integer.com . 50.pdffactory. El applet indicara que tipo de edad tiene. 100). if (edad >30) g.drawString("Eres un Jovencito".drawString("Tu edad es " + edad. edadCa mpo. 50. diseñamos un applet que permite al usuario teclear la edad de una persona. } } By: m @ gh 46 PDF created with pdfFactory Pro trial version www. *.a wt.drawString("Eres un Niño". else if (edad >20) g.100).drawString("Eres un Adulto".*. 50. import java. 50. add(edadCa mpo).Curso Básico de Java 2 By: m @gh ? Ejemplo 30. 50).

Curso Básico de Java 2 By: m @gh REFERENCIAS BIBLIOGRAFICAS: Programación en Java 2 Luis Joyanes Aguilar / Ignacio Zahonero Martinez McGrawHill 1era.jsp http://www.co m/ java/tuto riales/J2SE/ http://www. 2002 Manual de Referencia de Java 2 Herbert Schildt Osborne-McGrawHill 4ta. Edición. ar/ http://www.com .com/cursos/ http://www.lawebdelprogramador.elguruprogra mador. Edición.co m/ j2se/1.sun. 2001 REFERENCIAS WEBGRAFICAS: http://www.co m/ manuales/57/ SOFTWARE UTILIZADO: http://ja va.org By: m @ gh 47 PDF created with pdfFactory Pro trial version www.jgrasp.0/do wnloa d.progra ma cion.desarrolloweb.com.pdffactory.5.

Sign up to vote on this title
UsefulNot useful