8b. Cómo leer datos mediante una ventana

  Curso: Introducción a Java

8.5. Cómo leer datos mediante una ventana.

Como lenguaje moderno que es, Java no sólo permite crear programas en "modo texto". También podemos usar "ventanas" como forma de comunicación con el usuario. Como toma de contacto, veremos apenas un par de posibilidades: los diálogos de entrada (InputDialog) para pedir datos, y los diálogos de mensaje (MessageDialog) para mostrar resultados:

A un "InputDialog" hay que indicarle varios detalles adicionales:

  • La ventana de la que depende nuestro InputDialog; como todavía no usaremos más ventanas, para nosotros será "null"
  • El texto que queremos que aparezca como pregunta al usuario, por ejemplo "Introduzca un número".
  • El texto que queremos que aparezca en el título de la ventana, por ejemplo "Sumador".
  • Las opciones, que indicarán el tipo de ventana del que se trata, para mostrar iconos adicionales que hagan la apariencia más vistosa. Por ejemplo, si es un "QUESTION_MESSAGE" aparecerá un icono con una interrogación, y si es un "" aparecerá una letra "i".

Así podremos obtener una ventana como ésta:

Al igual que pasaba con la orden "readLine", obtendremos una cadena de texto, que podríamos tratar como un número si usamos "Integer.parseInt". El fuente completo podría ser así:

//  
// Ejemplo 4 de como pedir datos al usuario (interfaz grafico)
//  
 
import javax.swing.JOptionPane;
 
class SumarGUI { 
  public static void main( String args[] ) { 
 
 
      int numero1 = Integer.parseInt( JOptionPane.showInputDialog(
        null,"Introduzca un numero",
        "Sumador",
        JOptionPane.QUESTION_MESSAGE) );
 
      int numero2 = Integer.parseInt( JOptionPane.showInputDialog(
        null,"Introduzca otro numero",
        "Sumador",
        JOptionPane.QUESTION_MESSAGE) );
 
      int resultado = numero1+numero2;
 
      JOptionPane.showMessageDialog(
        null,"Su suma es: " + resultado,
        "Sumador",
        JOptionPane.INFORMATION_MESSAGE);     
  } 
} 
 

En este programa se muestra una segunda ventana de introducción de datos:

Y el resultado se mostraria en una ventana de mensaje, como ésta:

Ejercicio propuesto 8.5.1: Crea un programa que te pida tu nombre (usando una ventana de introducción de datos) y lo muestre "al revés" (de la última letra a la primera), en una nueva ventana.
Ejercicio propuesto 8.5.2: Crea un programa que pida dos números enteros (usando ventanas de introducción de datos) y muestre su suma, en una nueva ventana.

Actualizado el: 05-07-2013 14:55