noviembre 11, 2011

JOptionPane.showMessageDialog();

El showMessageDialog() es un método mas de la clase JOptionPane, este método realiza una tarea muy sencilla cuando se manda a llamar: JOptionPane.showMessageDialog() solo muestra un mensaje en un cuadro de dialogo en la pantalla; Hace una función similar al System.out.println(), pero System.out.println imprime el mensaje que le indiquemos en consola y JOptionPane.showMessageDialog muestra el mensaje en el cuadro de dialogo con un botón de "Aceptar" para cuando el usuario termine de leer el mensaje:.

El siguiente es un programa que pide al usuario 2 números, los suma y muestra su resultado en pantalla, pero en lugar de mostrar el resultado en consola con el System.out.println, lo haremos en un cuadro de dialogo con el JOptionPane.
//Archivo: PruebaMessage.java

import javax.swing.JOptionPane;

public class PruebaMessaje{
 
 public static void main(String args[]){
  
  String nombre=JOptionPane.showInputDialog("¿Como te llamas?");
  String valor;
  valor=JOptionPane.showInputDialog("Introduzca un numero:");
  int num1=Integer.parseInt(valor);
  valor=JOptionPane.showInputDialog("Introduzca otro numero:");
  int num2=Integer.parseInt(valor);
  
  JOptionPane.showMessageDialog(null,"El programa sumara los numeros");
  
  int suma=num1+num2;
  
  JOptionPane.showMessageDialog(null, "Hola "+nombre+", tu suma es: "+suma);
 }
}
Para este programa importamos la libreria JOptionPane en la linea 3, ya que haremos usos de algunos metodos ahi contenidos. En la linea nueve declaramos String nombre que va a contener lo que reciba del JOptionpane.showInputDialog(), en la linea 10 declaramos String valor, esta variable servirá de soporte para crear otras, por eso solo la declaramos. En la linea 11 hacemos el primer uso de la variable valor y en esa variable guardamos lo que reciba el JOptionPane, después en la linea 12 asignamos a int num1 lo que resulte de la conversión de String valor. En la linea 13 reutilizaremos la variable String valor, por tanto, al principio String valor contenía lo que se le ingreso en el JOptionPane en la linea 11, pero como se vuelve a reutilizar con otro JOptionPane, se borra lo que tenia con anterioridad y se escribe el nuevo valor obtenido por el JOptionPane de la linea 13 y en la linea 14 se declara int num2 y se le asigna lo que resulte de la conversión de String valor.

En la linea 16 hacemos uso de nuestro primer JOptionPane.showMessageDialog(), estableciendo en el parámetro primero null y después el mensaje que mostraremos, en este caso: "El programa sumara los números" y aparecerá un cuadro de dialogo en pantalla así:




y cuando el usuario presione el botón "Aceptar" seguirá ejecutándose nuestro programa pasando así a la linea 18 donde se declara int suma y se le asigna la suma de lo que contiene la variable num1 mas lo que contiene la variable num2. Y posteriormente volvemos a hacer uso de otro JOptionPane.showMessageDialog() en la linea 20, para mostrar el resultado final, como podemos observar su estructura es muy similar a la del System.out.println(), solo que a esta se le agrega primero null, posteriormente una cadena de caracteres: "Hola " y se le concatena la variable nombre y se le concatena otra cadena de caracteres: ", tu suma es: " y se le concatena la variable suma donde contiene el resultado de la operación. Al final, con un ejemplo, Nombre: Juan. Primer num: 3. Segundo num: 2, nos dara el siguiente resultado:


Y cuando el usuario da "Aceptar" a esa ventana terminara nuestro programa.

6 comentarios:

  1. No me funciono del todo me sale un eror en public class en la letra c pero no se por que es.

    ResponderBorrar
    Respuestas
    1. me sale igual que Anónimo me sale un error en public class
      que deberia hacer GRACIAS!!!

      Borrar
  2. A mi no me sale el resultado de JOptionPane.showMessageDialog
    Solo aparece la primer ventana, por que sera?

    ResponderBorrar
  3. Se puede cambiar el botón por defecto de showMessageDialog (Aceptar), por ejemplo un "ok"????

    ResponderBorrar
  4. hola que tal hay una particularidad en este
    System.out.print("Cuantos numeros desea ingresar: ");
    Scanner scanner = new Scanner
    a Joptionpane como seria?

    ResponderBorrar