Professional Documents
Culture Documents
3-5
Entrada del teclado
Copyright 2015, Oracle y/o sus filiales. Todos los derechos reservados.
Objetivos
En esta leccin se abordan los siguientes objetivos:
Comprender las entradas de los usuarios
Crear una clase JOptionPane para recopilar entradas de los
usuarios
Usar una clase Scanner para recopilar entradas de la consola
Usar una clase Scanner para recopilar entradas de un
archivo
Comprender cmo gestionar
los tokens y delimitadores
mediante una clase Scanner
JFo 3-5
Entrada del teclado Copyright 2015, Oracle y/o sus filiales. Todos los derechos reservados. 3
Temas
Entrada del usuario
JOptionPane
Scanner
Entrada
Tipos de Conversin
Tipos de del
Qu es dato entre Tipos
Datos teclado
una textual de Dato
variable? Numricos
Seccin 3
JFo 3-5
Entrada del teclado Copyright 2015, Oracle y/o sus filiales. Todos los derechos reservados. 4
Por qu debe obtener la entrada
del usuario?
La asignacin manual de los valores a las variables es
lo que se conoce como codificacin de valores:
String input = "This is a String";
JFo 3-5
Entrada del teclado Copyright 2015, Oracle y/o sus filiales. Todos los derechos reservados. 5
Tipos de entrada del usuario
Entre los ejemplos de entrada del usuario se incluye...
Pulsar un botn de un controlador de juego
Introducir una direccin en un GPS
Introducir nmeros y funciones en una calculadora
Decir a las personas su nombre
Pero sin la entrada del usuario...
Cundo har el juego que su personaje salte?
Dnde le guiar el GPS?
Qu nmeros devorar la calculadora?
Qu le llamar la gente?
JFo 3-5
Entrada del teclado Copyright 2015, Oracle y/o sus filiales. Todos los derechos reservados. 6
Cmo obtener la entrada del usuario
Hay muchas formas de obtener la entrada del usuario:
Botones (fsicos o virtuales)
Ruedas y diales
Reconocimiento de voz
Cuadros de dilogo de texto
Archivos de propiedades
Java ofrece varias maneras de obtener la entrada del
usuario, incluidos...
Swing JOptionPane
JavaFX (un sucesor de Swing, que trataremos ms adelante)
Scanner
JFo 3-5
Entrada del teclado Copyright 2015, Oracle y/o sus filiales. Todos los derechos reservados. 7
Temas
Entrada del usuario
JOptionPane
Scanner
Entrada
Tipos de Tipos de Conversin
del
Qu es Datos dato entre Tipos
teclado
una Numrico textual de Dato
variable? s
Seccin 3
JFo 3-5
Entrada del teclado Copyright 2015, Oracle y/o sus filiales. Todos los derechos reservados. 8
JOptionPane
Se trata de una forma sencilla de obtener la entrada de
los usuarios:
JOptionPane.showInputDialog("Type something:");
JFo 3-5
Entrada del teclado Copyright 2015, Oracle y/o sus filiales. Todos los derechos reservados. 9
JOptionPane devuelve cadenas
La entrada se puede almacenar como una cadena:
String input = JOptionPane.showInputDialog("Type something:");
JFo 3-5
Entrada del teclado Copyright 2015, Oracle y/o sus filiales. Todos los derechos reservados. 10
Ejercicio 1, parte 1
Importe y edite el proyecto Input01.
Cree un JOptionPane:
NetBeans detectar un error.
Siga las sugerencias de NetBeans de importacin de
javax.swing.JOptionPane
Trataremos la importacin en otra seccin.
JFo 3-5
Entrada del teclado Copyright 2015, Oracle y/o sus filiales. Todos los derechos reservados. 11
Ejercicio 1, parte 2
Almacene esta entrada como una String.
Imprima la variable String.
Analice String como una variable int independiente.
Tendr que introducir un valor que se pueda analizar.
Imprima este valor +1.
Intente crear un cuadro de dilogo, analizarlo e
inicializar un int en una sola lnea. Debe tener solo un
punto y coma (;).
JFo 3-5
Entrada del teclado Copyright 2015, Oracle y/o sus filiales. Todos los derechos reservados. 12
Cdigo condensado
Puede distribuir las entradas, analizar y calcular en varias
lneas:
String inputString =
JOptionPane.showInputDialog("??");
int input = Integer.parseInt(inputString);
input++;
O condensarlo en una sola lnea:
int input = Integer.parseInt(JOptionPane.showInputDialog("??")) +1;
JFo 3-5
Entrada del teclado Copyright 2015, Oracle y/o sus filiales. Todos los derechos reservados. 13
Diferentes InputDialogs
Hemos creado un
InputDialog simple:
Con un cdigo
ms complicado,
podemos personalizar
el InputDialog ms:
JFo 3-5
Entrada del teclado Copyright 2015, Oracle y/o sus filiales. Todos los derechos reservados. 14
Ms opciones con InputDialogs
Esta versin de un
InputDialog no devuelve
una String.
El resultado se debe
convertir en String
para que se pueda utilizar:
JFo 3-5
Entrada del teclado Copyright 2015, Oracle y/o sus filiales. Todos los derechos reservados. 15
Ms opciones con InputDialogs
Para evitar entradas no deseadas,
es posible proporcionar solo los
valores aceptables a los usuarios.
Alguna de esta sintaxis se
examina con ms detalle en la
seccin 8.
JFo 3-5
Entrada del teclado Copyright 2015, Oracle y/o sus filiales. Todos los derechos reservados. 16
showMessageDialog
Un showMessageDialog no
proporciona un campo para
la entrada.
Existen muchas otras
variaciones de JOptionPane.
JOptionPane.showMessageDialog(null,
"There's no input here, just a message",
"Title",
0);
JFo 3-5
Entrada del teclado Copyright 2015, Oracle y/o sus filiales. Todos los derechos reservados. 17
Ejercicio 2
Importe y edite el proyecto Input02.
Experimente con el cdigo e intente volver a cambiar...
El ttulo del mensaje
El mensaje
Cualquier texto de entrada por defecto
El icono del cuadro de dilogo
Analizar, manipular e imprimir cualquier entrada.
JFo 3-5
Entrada del teclado Copyright 2015, Oracle y/o sus filiales. Todos los derechos reservados. 18
Temas
Entrada del usuario
JOptionPane
Scanner
Entrada
Tipos de Conversin
Tipos de del
Qu es dato entre Tipos
Datos teclado
una textual de Dato
variable? Numricos
Seccin 3
JFo 3-5
Entrada del teclado Copyright 2015, Oracle y/o sus filiales. Todos los derechos reservados. 19
Obtencin de una entrada con un
objeto Scanner
Un objeto Scanner abre un flujo para recopilar entradas:
System.in prepara Scanner para recopilar entradas de la consola.
Escriba la entrada en la ventana de salida de NetBeans.
Tambin se puede utilizar el objeto Scanner sin IDE.
Se trata de una de las mejores prcticas para cerrar el flujo
de Scanner cuando haya terminado.
JFo 3-5
Entrada del teclado Copyright 2015, Oracle y/o sus filiales. Todos los derechos reservados. 20
Lectura de entradas con un Scanner
El objeto Scanner busca tokens.
Los tokens estn separados por un delimitador.
El delimitador por defecto es un espacio.
JFo 3-5
Entrada del teclado Copyright 2015, Oracle y/o sus filiales. Todos los derechos reservados. 21
La clase Scanner
La clase Scanner, como cualquier otra clase, tiene campos y mtodos.
Unos mtodos de clase Scanner tiles...
nextint() lee el siguiente token como un valor int.
nextdouble() lee el siguiente token como un valor double.
next() lee el siguiente token como un valor String.
JFo 3-5
Entrada del teclado Copyright 2015, Oracle y/o sus filiales. Todos los derechos reservados. 22
Ejercicio 3
Importe y edite el proyecto Input03.
Cree una clase Scanner:
NetBeans detectar un error.
Siga las sugerencias de NetBeans de importacin de java.util.Scanner
Recuerde cerrar la clase Scanner.
Utilice la clase Scanner y System.in para escribir un programa que...
Busque e imprima la suma de tres nmeros enteros introducidos por el usuario.
Intente introducir menos de tres tokens.
Intente introducir un token que no se pueda analizar como un int.
JFo 3-5
Entrada del teclado Copyright 2015, Oracle y/o sus filiales. Todos los derechos reservados. 23
Excepciones: InputMismatchException
JFo 3-5
Entrada del teclado Copyright 2015, Oracle y/o sus filiales. Todos los derechos reservados. 24
Excepciones: IllegalStateException
JFo 3-5
Entrada del teclado Copyright 2015, Oracle y/o sus filiales. Todos los derechos reservados. 25
Excepciones: NullPointerException
JFo 3-5
Entrada del teclado Copyright 2015, Oracle y/o sus filiales. Todos los derechos reservados. 26
Lectura desde un archivo
Java ofrece varias formas para leer archivos.
Ms mtodos de Scanner tiles incluyen:
nextLine() avanza la clase Scanner ms all de la lnea actual
y devuelve la entrada que se ha omitido.
findInLine("StringToFind") intenta buscar la siguiente
incidencia de un patrn creado a partir de la cadena
especificada, ignorando los delimitadores.
public static void main(String[] args) {
Scanner sc = new Scanner(
Input04.class.getResourceAsStream("fakeFile.txt"));
int x = sc.nextInt();
String entireLine = sc.nextLine();
sc.close();
}
JFo 3-5
Entrada del teclado Copyright 2015, Oracle y/o sus filiales. Todos los derechos reservados. 27
Ejercicio 4, parte 1
Importe y edite el proyecto Input04.
Ejecute el cdigo y examine la salida.
Lea cada lnea siguiente hasta que encuentre
"BlueBumper".
Los dos nmeros despus de "BlueBumper" son
xPositon e yPosition del objeto. Almacene estas
coordenadas como nmeros enteros e imprmalos.
Examine input04text.txt, si es necesario.
JFo 3-5
Entrada del teclado Copyright 2015, Oracle y/o sus filiales. Todos los derechos reservados. 28
Ejercicio 4, parte 2
Examine Level05.txt, si tiene curiosidad:
As es como los datos de nivel se almacenan para
Java Puzzle Ball.
Leer y analizar los datos de nivel es un poco ms complicado
que lo que ha hecho en este ejercicio.
Pero si ha finalizado este ejercicio, est cerca de entender
cmo se hace.
JFo 3-5
Entrada del teclado Copyright 2015, Oracle y/o sus filiales. Todos los derechos reservados. 29
PROPERTIES
JFo 3-5
Entrada del teclado Copyright 2015, Oracle y/o sus filiales. Todos los derechos reservados. 31