Java Swing (Diálogos)

    Ya que hemos ejecutado unos programas en Java y viendo los comandos de mostrar por pantalla y pedir datos al usuario, leerlos y almacenarlos en una variable para utilizarlos, comenzaremos a utilizar lo que se conoce como Swing (Interfaz Gráfica de Usuario Avanzada).

    Esta biblioteca es usada con Java para manipular principalmente diálogos, aunque tambien podemos utilizar con esta libreria Frames y demas. Pero nos concentraremos principalmente (por ahora) en los "JDialog" (diálogos).

    Los diálogos mas utilizados son los de introducción de datos y mensajes emergentes. Estos diálogos se crean de la siguiente manera:

  • Introducir datos: JOptionPane.showInputDialog("Mensaje")
  • Mostrar mensaje: JOptionPane.showMessageDialog("Mensaje")
  • Selección de opciones: JOptionPane.showOptionDialog("Mensaje")

    Para los diálogos de opciones debemos crear un contenedor donde se encuentren las variables del tipo "String" que mostraran por pantalla las opciones, por ejemplo.

    String SI="Si",NO="No";
    Object[]OPCION={SI,NO};

    int op=JOptionPane.showOptionDialog(null,"Mensaje","Título del diálogo", JOptionPane.YES_NO_OPTION, JOptionPane.ICONO_MESSAGE, null, ARREGLO, VARIABLE_PREFIJADA);

    Lo podemos hacer de manera sencilla como se muestra o también lo podemos hacer mas extenso y detallado colocando icono y título a estos mensajes. Los iconos predeterminados van desde error y advertencia, hasta iconos de pregunta. Su sintaxis es la siguiente:

    JOptionPane.showXxxDialog(null, "Mensaje","Título",JOptionPane.ICONO_MESSAGE)

    Donde:

  • XxxDialog es el tipo de dialogo a mostrar.
  • null es el objeto del mensaje (en caso de no poseer su valor es nulo y por lo tanto va null).
  • Mensaje es lo que que ira dentro del diálogo.
  • Título es el título del diálogo.
  • JOptionPane.ICONO_MESSAGE es el icono, por ejemplo ERROR_MESSAGE o INFORMATION_MESSAGE. (va en mayúsculas esta parte).

    Habiendo aclarado esto, vamos a aplicar la libreria Swing a los anteriores ejemplos en Java, esto lo hacemos de la siguiente manera:

  • Primero que nada importamos la libreria

            import javax.swing.*;

  • Comenzamos la clase y su método principal

            class Prueba

            {

               .......

  • Luego mostramos una ventana de diálogo mostrando al usuario un mensaje para introducir datos.

  VARIABLE= JOptionPane.showInputDialog("Introduzca un valor")

  • Finalizamos la clase y ejecutamos el programa.

    Si nos fijamos bien, la salida por pantalla ahora es con diálogos, es decir que donde colocábamos System.out.println ahora colocaremos JOptionPane.showXxxDialog. Ahora que aclaramos como va todo esto de los diálogos, pasemos a aplicarlo a los ejemplos anteriores, el código seria el siguiente:

import javax.swing.*;

class Prueba {
  public static void main (String [] args) {
    String Nombre;
    Nombre=JOptionPane.showInputDialog("Ingrese su nombre:");
    JOptionPane.showMessageDialog(null,"Hola "+Nombre);
  }
}

    Si hemos hecho todo esto bien, nos habra salido un dialogo de entrada donde introducimos un nombre, y un diálogo emergente donde el programa saluda al usuario con el nombre introducido. También hay que destacar que el throws IOException y la libreria Input Output ya no es necesaria, ya que este programa no es muy complejo.

    Igualmente esto puede generar excepciones al momento de manejarlo con números, asi que siempre es bueno colocar el try-catch para evitar inconvenientes. También podemos ampliar esto y colocarlo visualmente mas atractivo al usuario colocandole iconos y distintas opciones con metodos de if-else ("Si" o "De lo Contrario"), el cual se publicara en la siguiente entrada.



2 Comentarios

Escribir Comentario
Anónimo
AUTOR
19 de junio de 2013, 14:26 delete

Carlos ud me puede colaborar como colocarle a un jdialog un boton de minimizar?

Responder
avatar
19 de junio de 2013, 15:02 delete

La verdad no entiendo para que quieres esto, pero si es lo que buscas entonces puedes hacerte con un trigger (ActionEvent) que al pulsar el boton de minimizar dispare el dialogo.... Al dia de hoy no puedo darte un ejemplo, pero mañana seguramente publicare como hacerlo.... Saludos!!

Responder
avatar

Lamentablemente hay muchos usuarios en la red que han llegado al blog para escribir obscenidades, así que la moderación se hace necesaria. Recuerda utilizar un lenguaje correcto y espera a que sea aprobado.

Si necesitas publicar código haz click en "Conversión" para hacerlo legible.
ConversiónConversión