Lectura de Datos Desde Teclado Java

download Lectura de Datos Desde Teclado Java

of 36

description

Lectura de Datos Desde Teclado Java

Transcript of Lectura de Datos Desde Teclado Java

Lectura de datos desde tecladoEn esta prctica se va a desarrollar una aplicacin interactiva simple en Java, que solicita al usuario escribir datos de entrada en el teclado.La lectura de los datos se va a realizar desde la lnea de monados y a travs de una ventana de dilogo.

Software necesario

Se requiere tener instalado el software requerido (JDK y NetBeans IDE) en el ordenador como sedescribe aqu.Tambin es necesario descargar la documentacin Java: Fichero zip Java SE 6 Documentation (download) Desplazar hacia abajo hasta verJava SE 6 Documentation. Descargar el fichero zip. Se puede almacenar el fichero zip en cualquier parte del sistema de directorios. No se requiere descomprimir el fichero. Se aadir en NetBeans como se describe abajo.

Ejercicios Ejercicio 0: Descargar el fichero zip de documentacin JDK 6 Ejercicio 1: Lectura de datos desde teclado con BufferdReader Ejercicio 2:Lectura de datos desde teclado conJOptionPane Tarea

Ejercicio 0: Descarga de documentacin JDK

1. Usando un navegador Internet, ir ahttp://www.oracle.com/technetwork/java/javase/downloads/index.html2. Bajar en la pgina y seleccionar el botn de descarga de la documentacin Java SE 6.

3. Guardar el fichero en un directorio cualquiera.El nombre del fichero es algo parecido ajdk-6u19-docs.zip.

Ejercicio 1: Lectura de datos desde el teclado usando la clase BufferedReaderEn este ejercicio, se va a construir una aplicacin sencilla que obtiene la entrada de datos desde teclado. EL programa usar las clases BufferedReader e InputStreamReader para recibir los datos de entrada. Tambin se aprender a usar Javadoc para obtener ms informacin de las clases Java.1. Construir y ejecutar el programa Java GetInputFromKeyboard2. Convertir los valores de entrada de tipo String a un valor de tipo int3. Mostrar Javadoc en una manera sensitiva al contexto dentro de NetBeans IDE

(1.1) Construir y ejecutar el programa Java GetInputFromKeyboard1. Crear un proyecto NetBeans Seleccionar del men superiorFiley seleccionarNew Project. Aparece el dilogoNew Project. SeleccionarJavaen la seccinCategoriesyJava Applicationen la seccinProjects. ClickNext.

En la seccinName and Location, en el campoProject NameescribirMyGetInputFromKeyboardProject. En el campoCreate Main Class, escribirGetInputFromKeyboard. (Figura-1.10) ClickFinish.

Figura-1.10: Creacin deMyGetInputFromKeyboardProject Observar que el nodeo del proyectoMyGetInputFromKeyboardProjectse crea en el panelProjectsde NetBeans IDE y que se genera y muestraGetInputFromKeyboard.javaen la ventana del editor.2. Modificar el cdigo generadoGetInputFromKeyboard.javacomo se muestra en Cdigo-1.11. Estudiar el cdigo prestando atencin a los comentarios en negrita. Por ahora se usarn las clases BufferedReader and InputStreamReader sin entrar en ms detalles./** To change this template, choose Tools | Templates* and open the template in the editor.*/

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;

/**** @author*/public class GetInputFromKeyboard { /** * @param args the command line arguments */ public static void main(String[] args) {// Create BufferedReader object from Standard input device. // Standard input device is typically a keyborad. BufferedReader dataIn = new BufferedReader(new InputStreamReader( System.in) );// Prompt a user to enter his/her name String name = ""; System.out.println("Please Enter Your Name:");// Read data into name variable try{ name = dataIn.readLine(); }catch( IOException e ){ System.out.println("Error!"); }// Display the name System.out.println("Hello " + name +"!"); }}

Cdigo-1.11: GetInputFromKeyboard.java

3. Construir (Build) y ejecutar (Run) el programa Hacer click con el botn derecho del ratn enMyGetInputFromKeyboardProjecty seleccionarRun. Observar que el programa espera una entrada del usuario. Escribir un nombre debajo de la lnea "Please Enter Your Name:" en la ventanaOutputy pulsar la teclaEnter. (Figura-1.12)

Figura-1.12: Ingreasr nombre Observar que se muestra en la ventana OutputHello . (Figura-1.13 y Figura-1.14 below)Please Enter Your Name:Sang ShinHello Sang Shin!

Figura-1.13: Resultado

Figura-1.14: Impresin de datos ingresados

4. ModificarGetInputFromKeyboard.javapara que lea la edad (age) como se muestra en Cdigo-1.15. El fragmento de cdigo que se rquiere aadir se muestra resaltado ennegrita y de color azul./** To change this template, choose Tools | Templates* and open the template in the editor.*/

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;

/**** @author*/

public class GetInputFromKeyboard { /** * @param args the command line arguments */ public static void main(String[] args) { // Create BufferedReader object from Standard input device. // Standard input device is typically a keyboard. BufferedReader dataIn = new BufferedReader(new InputStreamReader( System.in) ); // Prompt a user to enter his/her name String name = ""; System.out.println("Please Enter Your Name:"); // Read entered data into name variable try{ name = dataIn.readLine(); }catch( IOException e ){ System.out.println("Error!"); } // Display the name System.out.println("Hello " + name +"!"); // Prompt a user to enter his/her age String age= ""; System.out.println("Please Enter Your Age:"); // Read entered data into age variable try{ age = dataIn.readLine(); }catch( IOException e ){ System.out.println("Error!"); } // Display the name and age System.out.println("Hello " + name +"!" + " " + "Your age is " + age); }}

Cdigo-1.15: Aadir cdigo para pedir al usuario ingrese su age

5. Construir y ejecutar el programa Hacer click con el botn derecho del ratn enMyGetInputFromKeyboardProjecty seleccionarRun. Observar que el programa espera una entrada de usuario. Escribir un nombre y pulsar la teclaEnter. Escribir la edad (age) y pulsar la tecla Enter. Observar que se mueatra el mensajeHello , en la ventana Output window del IDE. (Figura-1.16)Please Enter Your Name:Sang ShinHello Sang Shin!Please Enter Your Age:100Hello Sang Shin! Your age is 100

Figura-1.16: Impresin del nombre y edad

Volver al inicio del ejercicio

(1.2) Convertir los valores de entrada de tipo String a un valor de tipo int

Supongamos que se queire aadir la siguiente lgica al programa.Si la edad (age) es mayor a 100, mostrar Hello , you are old!En otro caso Hello , you are young!

Notar que en el cdigo anterior, el programa recibe age como de tipoString.Por ello no se puede comparar el tipo String "99" con el tipo primitivoint100. En otras palabras, se tiene que convertir el tipoString"99" a tipoint99 antes de compararlo con otro tipoint100.

Para ello existe un mtodo llamadoparseInt()en la claseIntegerpara convertir el tipoStringen tipoint.

1. Visualizar la documentacin Java (Javadoc) para la claseInteger. En un navegador ir ahttp://download.oracle.com/javase/6/docs/api/ Observar que se muestra la pgina raz de Javadoc. Desplazar abajo para ver la claseIntegeren el recuadro inferior izquierdo. Click Integer. Observar que se muestra la documentacin de la clase Integer en la seccin derecha del navegador. (Figura-1.20)

Figura-1.20: Javadoc de la clase Integer Desplazar abajo para visualizar el mtodoparseInt(String s). Observar que es un mtodstatic. (Figura-1.21)

Figura-1.21: Javadoc del mtodo parseInt(String s) Pulsar en el hiperelace del mtodoparseInt(String s). Observar que se muestra la informacin detallada del mtodo. (Figura-1.22) Notar que el mtodo lanza la excepcinNumberFormatException.

Figura-1.22: Informacin detallada del mtodo parseInt(String s)

2. ModificarGetInputFromKeyboard.javapara leer la edad ( age) como se muestra en Cdigo-1.23. El fragmento que se necesita aadir est resaltado ennegrita y color azul./** To change this template, choose Tools | Templates* and open the template in the editor.*/

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;

/**** @author*/public class GetInputFromKeyboard { /** * @param args the command line arguments */ public static void main(String[] args) { // Create BufferedReader object from Standard input device. // Standard input device is typically a keyboard. BufferedReader dataIn = new BufferedReader(new InputStreamReader( System.in) ); // Prompt a user to enter his/her name String name = ""; System.out.println("Please Enter Your Name:"); // Read entered data into name variable try{ name = dataIn.readLine(); }catch( IOException e ){ System.out.println("Error!"); } // Display the name System.out.println("Hello " + name +"!"); // Prompt a user to enter his/her age String age= ""; System.out.println("Please Enter Your Age:"); // Read entered data into age variable try{ age = dataIn.readLine(); }catch( IOException e ){ System.out.println("Error!"); } // Display the name and age System.out.println("Hello " + name +"!" + " " + "Your age is " + age); // Convert the String type of age variable into int primitive type variable ageint. int ageint = Integer.parseInt(age); // Now you can compare the int primitive type against int type value 100 if (ageint > 100){ System.out.println("Hello " + name +"!" + " " + "You are old."); } else{ System.out.println("Hello " + name +"!" + " " + "You are young."); } }}

Cdigo-1.23: Modificacin de GetInputFromKeyboard.java

5. Construir y ejecutar el programa Hacer click con el botn derecho del ratnMyGetInputFromKeyboardProjecty seleccionarRun. Observar que el programa espera una entrada del usuario. Escribir un nombre ,y pulsar la teclaEnter. Escribir la edad (age) y pulsar la tecla Enter. Observar que se muestra el mensajeHello , en la ventana Output del IDE. Observar que se muestra el mensaje completo (Figura-1.24 below)Please Enter Your Name:Sang ShinHello Sang Shin!Please Enter Your Age:23Hello Sang Shin! Your age is 23Hello Sang Shin! You are young.

Figura-1.24: Resultado de ejecutar la aplicacin

Volver al inicio del ejercicio

(1.3) Mostrar Javadoc en una manera sensitiva al contexto dentro de NetBeans IDE

En este ejercicio, se visualiza la documentacin de la clase Integer en formato sensitivo al contexto. Antes de realizar este paso, asegurarse de havber descargado el fichero zip del la documentacin del JSDK (download) en un directorio.

1. Aadir el fichero J2SE Development Kit Documentation 6.0 a NetBeans. Seleccionar del men superiorToolsy seleccionarJava Platform. (Figura-1.31)

Figura-1.31: Abrir el gestor Java Platform Observar que aparece la ventana de dilogo del Java Platform Manager. Hacer click en la pestaa Javadoc. ClickAdd ZIP/Folder. (Figura-1.32)

Figura-1.32: Aadir fichero Javadoc Observar que aparece la ventana de dilogo Add ZIP/Folder. Buscar en el directorio donde se decarg el fichero zipjdk-6-docs.zip. Seleccionar el fichero zipjdk-6-docs.zipy pulsar enAdd ZIP/Folder. (Figura-1.33)

Figura-1.33: Seleccin del fichero jdk-6-docs.zip Observar que el ficherojdk-6-doc.zipse muestra en la seccin Platform Javadoc. (Figura-1.34) Click Close.

Figura-1.34: adicin del ficherojdk-6-doc.zip

2. Usar Javadoc en un contexto sensitivo. Mover el cursor encima de la cadenaIntegeren el editor del cdigo fuente de NetBeans. SeleccionarShow Javadoc. (Figura-1.35)

Figura-1.35: Seleccin de Javadoc sobre Integer Observar que Javadoc de la clase Integer se muestra en el navegador (Figura-1.36)

Figura-1.36: Javadoc de la clase Integer Mostrar la documetacin Java en contexto sobre la claseString.

ResumenEn este ejercicio, se ha visto cmo leer datos ingresados a travs del dispositivo estandar de entrada, el teclado.Tambin se ha visto el uso en lnea de la documentacin Java y cmo mostrar el Javadoc de una clase a traves del formato sensitivo al contexto. Volver al inicio

Ejercicio 2: Lectura de datos desde teclado con JOptionPaneEn este ejercicio, se construir la misma aplicacin del ejercicio 1 pero con la utilizacin de la claseJOptionPane.1. Build y run un programa Java que usa operadores condicionales(2.1) Build y run un programa Java que usa operadores condicionales1. Crear un proyecto NetBeans SeleccionarFileen el men principal y seleccionarNew Project. Aparece el dilogoNew Project. SeleccionarJavaen la seccinCategoriesyJava Applicationen la seccinProjects. ClickNext. En la seccinName and Location, en el campoProject Name, escribirMyInputFromKeyboardJOptionPaneProject. En el campoCreate Main Class, escribirInputFromKeyboardJOptionPane. ClickFinish. Observar que el nodo del proyectoMyInputFromKeyboardJOptionPaneProjectse crear en la seccinProjectsde NetBeans y se genera en la ventana del editor el ficheroInputFromKeyboardJOptionPane.java.2. Modificar el fichero generadoInputFromKeyboardJOptionPane.java. ModifcarInputFromKeyboardJOptionPane.javacomo se muestra en Cdigo-2.21. Los fragmentos de cdigo a aadir estn resaltados en negrita y color azul.import javax.swing.JOptionPane;/** InputFromKeyboardJOptionPane.java** Created on January 24, 2010, 10:46 AM** To change this template, choose Tools | Template Manager* and open the template in the editor.*/

/**** @author*/public class InputFromKeyboardJOptionPane { /** Creates a new instance of InputFromKeyboardJOptionPane */ public InputFromKeyboardJOptionPane() { } /** * @param args the command line arguments */ public static void main(String[] args) { String name = ""; name=JOptionPane.showInputDialog("Please enter your name"); String msg = "Hello " + name + "!"; JOptionPane.showMessageDialog(null, msg); }}

Cdigo-2.21: InputFromKeyboardJOptionPane.java modificado3. Construir y ejecutar el programa Hacer click con el botn derecho del ratn enMyInputFromKeyboardJOptionPaneProjecty seleccionarRun. Aparece la ventana de dilogo Input. Escribir un nombre. (Figura-2.22) Click OK.

Figura-2.22: Ingresar nombre Observar que aparece la ventana de dilogo Message.

Figura-2.23: Impresin de Message

ResumenEn este ejercicio, se ha construdo la misma aplicacin del Ejercicio 1 utilizando en este caso la claseJOptionPane. Volver al inicio

Fuente: http://personales.unican.es/corcuerp/java/Labs/LAB_3.htm