Pedir datos a un usuario

 

Hasta el momento solo hemos practicado con ejemplos que imprimen en pantalla, pero que hay de cuando se quieran introducir datos no controlados, que sean digitados por el usuario.

 

En este ejemplo mostraré dos formas distintas de digitar datos para usarlos en nuestros programas, una mediante consola y la otra mediante interfaz gráfica Swing.

 

Por primera vez vamos a realizar un que capture datos el usuario y para ello se ocupan nuevos conceptos como lo es la instancia de un objeto, como todavía no entramos a la Programación Orientada a Objetos no te preocupes tanto por entender todo el código.

 

Comenzamos creando una nuevo proyecto junto con su paquete y su clase la llamaré PedirDatos.java, recuerda habilitar la casilla del método main.

 

Para poder pedir datos desde consola se necesita crear un objeto de la clase Scanner, esta clase ya esta creada y viene en las utilerias de Java.

 

Scanner entrada=new Scanner(System.in);

 

La linea anterior crea un objeto de la clase Scanner, el cual podemos utilizar todos los métodos disponibles en dicha clase, como parametro indica un valor de entrada del sistema.

 

Para poder utilizar esta clase, antes que nada se debe importar ya que ésta se encuentra externa a otro paquete del nuestro, se utiliza la siguiente linea de código:

 

import java.util.Scanner;

 

Se debe escribir antes de declarar nuestra clase y despues de declarar nuestro paquete, eclipse tiene la ventaja de importar automáticamente las clases, si marca error por no importar la clase, con la combinación de teclas ctrl + shift + O se importarán automaticamente.

 

Ahora si podemos capturar datos de entrada, declararé una nueva variable de tipo String para capturar una cadena de texto.

 

String cadena=entrada.nextLine();

 

entrada.nextLine(); indica un método del objeto entrada que permite capturar cadenas de texto, pero como mencione antes, todavía no es importante entender todo el código.

 

Para verificar que se captura nuestra String captura, la mandamos a imprimir:

 

System.out.println(cadena);

 

Guardamos y ejecutamos.

pide cadena

 

Se puede programar para que se capturen números como enteros o doubles:

 

int num=entrada.nextInt();
double d=entrada.nextDouble();
System.out.println(num);
System.out.println(d);

 

Así mismo se debe de digitar un entero y un double en el orden en que se pide, de lo contrario puede ocurrir un desbordamiento.

 

run2

Código utilizado parte 1

package pqtPedirDatos;

import java.util.Scanner;

public class PedirDatos {

    public static void main(String[] args) {
        Scanner entrada=new Scanner(System.in);
        String cadena=entrada.nextLine();
        int num=entrada.nextInt();
        double d=entrada.nextDouble();
        System.out.println(cadena);
        System.out.println(num);
        System.out.println(d);
    }

}
 

Pedir datos con Swing

 

Para pedir datos con interfaz gráfica Swing es necesario llamar el método showInputDialog de la clase JOptionPane, como mencionamos anteriormente, hay que importar la clase cuando es externa a nuestro paquete, esta se encuentra en javax.swing.

 

import javax.swing.JOptionPane;

 

Declaramos una variable tipo String para capturar lo digitado y después imprimirla, esta vez no en consola, sino en una nueva ventana.

 

String cadena=JOptionPane.showInputDialog("Digita una cadena");

 

Nos pide digitar una cadena, en un cuadro de texto y dos botones, Aceptar y cancelar.

 

 

Enseguida se mostrará una nueva ventana con el mensaje que escribimos en la caja de texto.

mensaje

Código utilizado parte 2

package pqtPedirDatos;

import javax.swing.JOptionPane;

public class PedirDatos {

    public static void main(String[] args) {
        String cadena=JOptionPane.showInputDialog("Digita una cadena");
        JOptionPane.showMessageDialog(null, cadena);
    }

}