PIXEL FACEBOOK
[google-translator]
logo-blanco

Usar JoptionPane En Java

cuadros de dialogo en java

Lo que vas a encontrar...

Hola mi querido visitante, aunque puedes usar un Jpanel en java, en este articulo te mostraré lo que es un cuadro de dialogo, las ventajas de usar este en una aplicación de Java, y como funcionan los distintos tipos de cuadros de cuadros de dialogo, aunque estos los podemos resumir en: Como usar JoptionPane en Java, ya que JoptionPane es la clase que provee los métodos necesarios para mostrar esos útiles mensajitos al usuario, sin la necesidad de tomar cursos online gratis 😉

Que Es Una Ventana De Dialogo En Java?

Me alegra que lo preguntes mi estimado visitante. Según la Wikipedia:

…»ventana que permite comunicación simple entre el usuario y el sistema informático.»

Para Que Sirve Un Cuadro De Dialogo en Java?

Los cuadros de dialogo (JOptionPane) son «herramientas» muy útiles al momento de ingresar datos y mostrar información; digo útil ya que con estas no necesitamos crear objetos de tipo BufferedReader y «tirar» más código para poder usar correctamente los datos que se ingresan como lo expliqué brevemente cuando explique sobre como ingresar datos en Java por consola.

Librerías Para Usar Cuadros De Dialogo En Java

Para poder poder usar estos cuadros de dialogo hay que importar la librería necesaria para que esta se ejecute, la cual es:

También podemos hacer lo siguiente:

Con lo anterior cargaremos todas las librerías que contenga swing pero esto es innecesario ya que cargaremos librerías que no usaremos.

Tipos De Cuadros De Dialogo En Java

Entre los tipos de cuadros dialogo encontraremos: showConfirmDialog, showInputDialog, showMessageDialog y showOptionDialog. Los mas usados son los tres primeros. Ahora si, aprendamos a usar JoptionPane En Java.

showMessageDialog

Este cuadro de dialogo es ideal para mostrar información de cualquier tipo, este reemplaza el System.out.print(); La sintaxis es:

– Como observamos en la anterior linea, lo que va dentro de las «…» es el texto que deseemos mostrar, para estos mensajes también se puede usar la concatenación para mostrar el texto y variables a la misma vez.
– Lo que se ve al ejecutar la aplicación es lo siguiente:

JOptionPane.ShowMessageDialog.....

showInputDialog

Este cuadro de dialogo es ideal para ingresar datos, hay que tener en cuenta que todo lo que se reciba se tomara como un String, pero esto no es problema para trabajar con otros tipos de datos, en tal caso es necesario convertir la cadena que se recibe en el tipo de dato que necesitemos (int, Float, double, etc). La sintaxis es las siguiente:

– En la linea 1 cree una variable de tipo String la cual llamé «ax», en esta variable almaceno el dato que se ingresa con el showInputDialog, al igual que el showMessageDialog lo que va dentro del «…» es el mensaje que mostramos al usuario.
– En la linea 2 muestro el dato que recibí atravez de la variable ax.
– Al ejecutarse la aplicación veremos lo siguiente:

jagonzalez.org | Usar JoptionPane | JOption002

jagonzalez.org | Usar JoptionPane | JOption003

showConfirmDialog

Este cuadro de dialogo es de tipo entero, por lo tanto hay que crear una variable de tipo int para manejar las opciones que este cuadro de dialogo ofrece, las anteriores son si, no, y cancelar; la sintaxis es la siguiente:

– En la linea 1 se puede observar que cree una variable entera, el null que se antepone al mensaje es necesario, ya que este se toma cuando el usuario pulsa la tecla Esc o presiona Cancelar, el mensaje a mostrar se usa como en los anteriores cuadros de dialogo.
– En las lineas 2 y 4 se usan condicionales para tomar las acciones respectivas de acuerdo a la opción que haya dado el usuario.
– En las lineas 3 y 5 se muestran mensaje correspondientes a la respectiva opción que haya dado el usuario.

jagonzalez.org | Usar JoptionPane | JOption004

Si seleccionamos veremos el siguiente cuadro de dialogo:

jagonzalez.org | Usar JoptionPane | JOption005

Si por el contrario seleccionamos NO veremos el siguiente cuadro de dialogo:

jagonzalez.org | Usar JoptionPane | JOption006

Los anteriores son los cuadros de dialogo mas usados, ya que con estos podemos realizar cosas básicas pero muchas veces necesarias para el buen desarrollo de una aplicación. Cabe aclarar que lo anterior no es lo único que se puede hacer, pero lo mas avanzado lo explicare mas adelante 🙂

Para finalizar mostrare el codigo necesario para trabajar con números int, Float, Double, Long:

– Hay que tener en cuenta que lo anterior se hace con JOptionPane.showInputDialog y que en las «…» va el mensaje que deseamos mostrar al usuario para guiarlo en la operación.

Las anteriores ventanas de dialogo en Java nos proveen una serie de opciones predefinidas para que el usuario pueda escoger. Pero también podemos personalizar los cuadros de diálogos con nuestras propias opciones, para esto usamos showOptionDialog.

Para nuestras opciones personalizadas, tendremos que tener un arreglo de String, veamos el siguiente ejemplo:

Espero que el anterior post haya sido de gran utilidad, cualquier duda, critica(de preferencia constructiva) favor plasmarlo como comentario.

Si te ha gustado el post, compártelo, regala un like ó comenta 😉

Facebook
Twitter
LinkedIn
WhatsApp
  1. Avatar de pablo pablo dice:

    podrias ayudarme a realizar este programa, en java por que no me resulta

    confeccione un programa para multas de 10 personas que mediante el siguiente menu
    realice lo siguente MENU MULTAS
    1)INGRESE DATOS DE LAS MULTA
    2)IMPRIMA LA CANTIDAD DE MULTAS POR DISCO PARE
    3)IMPRIMA LA CANTIDAD DE MUJERES MULTADAS MAYORES DE 30 AÑOS
    4) IMPRIMIR LA CANTIDAD DE HOMBRES MULTADOS
    5)IMPRIMIR PORCENTAJE DE HOMBRES Y MUJERES MULTADOS
    6)IMPRIMIR CANTIDAD DE HOMBRES MAYORES A 50 AÑOS CON MULTAS POR MAL ESTACIONAMIENTO
    7) SALIR

    OBSERVACIONES SON 10 PERSONAS MULTADAS
    1) INGRESE DATOS DE MULTA : DEBERA CONTENER LOS SIGUIENTES DATOS
    TIPO DE MULTA,SEXO Y EDAD
    TIPO DE MULTA TENDRA 1) DISCO PARE 2) MAL ESTACIONAMIENTO .
    SEXO TENDRA H)HOMBRES M)MUJERES
    ESTOS DEBEN SER ALMACENADOS EN 3 ARREGLOS (TIPO DE MULTA ,SEXO Y EDAD)

  2. Avatar de Daniel Daniel dice:

    Hola , como hago para meter datos en una variable char en el menú?

  3. Avatar de Claudio I Claudio I dice:

    Muchas gracias por el post!! Una pregunta que tal vez sea muy absurda, pero ¿usted sabe como hace JOptionPane para nombrar los JButton en español? Es una duda absurda pero tengo curiosidad. Nuevamente muchas gracias por el post.

    Saludos.

  4. Avatar de jesus jesus dice:

    que bueno el blog

  5. Avatar de Chris Chris dice:

    Excelente tu blog, muy buena información. Gracias

  6. GENIALISTER!!!!!!!!!!!! 🙂

  7. Avatar de Juan Gonzalo Juan Gonzalo dice:

    Hola, tengo una duda, como se usa La condicional De si si o si no, para decir si si aprueba esto que haga lo otro si no que lo vuelva hacer.

    Muchas gracias

  8. Avatar de Angélica Angélica dice:

    Hola, tuve duda con JOptonPane.showMessageDialog pero gracias a tu aporte ya lo resolvi. Saludos!!

  9. Avatar de Gabriel Polydoro Gabriel Polydoro dice:

    Buenas noches, muy buena informacion, estaba necesitando el JOption para un traductor que necesito hacer, la verdad no tengo mucho conocimiento sobre programar, hasta ahora estoy empezando, quisiera saber como hago para hacer un traductor sencillo donde me pueda traducir una palabra de español a ingles y viceversa usando 2 tipos de clases, vectores y el JOption :S. Estoy trabajando en ECLIPSE.

    Cualquier aporte seria de gran ayuda, gracias.

  10. Avatar de Eswin Eswin dice:

    Hola como puedo hacer para que la información me lo pida en la misma ventana es decir que no se tenga un botón de aceptar sino que solo uno de resultado y que pueda visualizar la información ingresada y la respuesta final. gracias

    1. Avatar de belial9826 belial9826 dice:

      Hola Eswin, para tal objetivo usa un sencillo formulario. El resultado lo puedes mostrar en un JLabel, recuerda que el método setText() sirve para mostrar el texto.

  11. Avatar de Carlos Carlos dice:

    Muy buen tuto !!
    me sirvio mucho ahorita que comienzo a trabajar con interfaz grafica!
    Muchas Gracias! 🙂

  12. Avatar de Nicolás Nicolás dice:

    Hola…muy buen tutorial ahora lo estoy usando pero me surge una duda:
    Si yo quiero que mi mensaje salga en varias lineas como una especie de menú…como hago para que el codigo me reconozca que no siga una linea entera si no que genere una nueva linea…me hago entender:
    Quiero que en el joption salga así:
    Digite 1 para area triangulo
    2 Para circulo
    3 para cuadrado

    Pero me sale es asi
    Digite 1 para area triangulo, 2 para circulo, 3 para cuadrado

    Muchas gracias de antemano

    1. Avatar de belial9826 belial9826 dice:

      Hola amigo Nicolas, solo tienes que agregar un salto de linea (n), para un mayor entendimiento de esto había puesto una guía de como crear un menú con cuadros de dialogo, espero te sirva 😉

  13. Avatar de Dave Dave dice:

    Buen aporte amigo 🙂

  14. Avatar de Marko Marko dice:

    hola me puedes ayudar xfa, necesito un programa que permita ingresar una cadena de caracteres y si se ingresan muneros positivos o negativos me salga un mensaje indicando que ingrese solo caracteres

    1. Avatar de belial9826 belial9826 dice:

      Hola Marko, en el ejercicio de como hacer una Calcular de Java tengo la validacion que necesitas, buscala en la segunda clase de la linea 33 a la 42, la implementas en tu codigo, recuerda que tendras que recibir el valor por un inputDialog, luego evaluas en un if el valor recibido con el metodo que te sugiero, el metodo devuelve true (verdadero) en caso de que se ingrese un numero, ya sea positivo o negativo; en caso contrario (String o Char) devuelve false (falso). Espero te sirva 😉

  15. Avatar de laura laura dice:

    Hola, alguien me puede ayudar con lo siguiente: ocupo que se eliminen las opciones que voy seleccionando con un .showOpcionDialog(); gracias

  16. Avatar de jose jose dice:

    BUENAS, quisiera saber como hago para ingresar un numero , trabajar dicho numero y luego mostrar el nuevo numero trabajado, específicamente quiero hacer un programita sencillo que me calcule el factorial de un número ingresado , pero utilizando el JOptionPane

  17. Avatar de Belfor Soto Belfor Soto dice:

    Excelente tutorial, me ayudo bastante..

    muchas gracias.
    Saludos desde Santiago de Chile

  18. Avatar de VanJhel VanJhel dice:

    Hola una pregunta como hago para conectar mi JOptionPane con una base datos por ejemplo quiero que me muestre Bienvenido (nombre ingresado en la base datos) agardeceria tu ayuda 🙂

    1. Avatar de belial9826 belial9826 dice:

      Hola, mira el siguiente código:

      El método comprobar lo complementas con las lineas necesarias para comprobar tu conexión 😛

  19. Avatar de Sergio Gaspar Sergio Gaspar dice:

    Muchas gracias, muy buena la info… pero me surge una duda…
    .
    Como hago para que cuando seleccione la YES_OPTION regrese al incio del programa y que cuando seleccione NO_OPTION me finalize
    .

    ———–incio——————–
    String a = JOptionPane.showInputDialog(«Ingrese un numero: «);
    JOptionPane.showMessageDialog(null, «El numero ingresado es: «+a);

    int b = JOptionPane.showConfirmDialog(null, «Deseas volver a ingresar otro numero?»);

    if(b == JOptionPane.YES_OPTION)
    { //????
    }

    if(b == JOptionPane.NO_OPTION)
    { //???
    }
    ————————- Fin ———————–
    .
    Gracias por la ayuda 🙂

    1. Avatar de belial9826 belial9826 dice:

      Para esto tienes que usar un ciclo para controlar las iteraciones, mira el siguiente codigo:

      Espero sea de gran utilidad, recuerda, comparte el post si te ha servido ó gustado 😉

      1. Avatar de alan alan dice:

        Amigo necesito ayuda mira quiero que confirme el nombre pero me tira un error en donde estoy mal

        import javax.swing.*;
        public class Cuento {

        public static void main(String args []) {
        int respuesta;
        String Name;
        JOptionPane.showMessageDialog(null,»Bienvenido»);
        do{
        Name= JOptionPane.showInputDialog(«Escribe tu nombre»);
        repuesta=JOptionPane.showConfirmDialog(null, «Este es tu nombren>>»+Name+»<<");

        }while (respuesta == JOptionPane.NO_OPTION);
        }

        }

        1. Avatar de belial9826 belial9826 dice:

          Hola @alan, el unico error importante que encontre fue el de el nombre de la variable de respuesta, cuando lo declaras esta bien escrito, pero el nombre que esta dentro del ciclo no es igual, por tanto estas usando una variable que no existe 😛 A esos errores se les conoce como «Errores de capa 8«, osea, errores tontos cometidos por el programador (sin animo de ofenderte 😉 ).

  20. Avatar de noe noe dice:

    muy buen trabajo me ayudo en mucho gracias y me da gusto tu deseo por compartirnos tus conocimientos.

  21. Hola, buen post era lo que estaba buscando y de paso encontre algo q no buscaba pero que me sirvio bastante, pero ahora tengo una pregunta…… se puede mostrar en un JOptionPane una tabla donde utilizo el System.out.Format ????

    soy estudiante de unillanos – villavicencio. buen aporte (Y)

    1. Avatar de belial9826 belial9826 dice:

      Hola @r4z0rbl4ck, claro que si, ya sea un objeto o el texto formateado que desees lo puedes mostrar en un cuadro de dialogo, si algo creas una variable que vaya asignando lo que deseas mostrar var+= loquetengas; y listo 😉

      1. Quiero mostrar lo siguiente en el cuadro de dialogo

        String leftAlignFormat = «|%-11d|%-10s|%-12d|%-15d| n»;
        System.out.format(«+———–+———-+————+—————+ n»);
        System.out.format(«|Cuadrante | Registro | Velocidad | Multa |n»);
        System.out.format(«+———–+———-+————+—————+ n»);
        for (int c=0;c<cont;c++) {
        System.out.format(leftAlignFormat,vecc[c],vecreg[c],vecvel[c],vecmulta[c]);
        }
        System.out.format("+———–+———-+————+—————+ n");

        System.out.println("La Suma de las multas es "+sumamult);

        como seria?

        1. Avatar de belial9826 belial9826 dice:

          Seria algo como:

  22. Avatar de mauro mauro dice:

    se puede hacer que lo que capture por el showInputDialog en el momento de ingresarlo se vea en forma de contraseña?

    1. Avatar de belial9826 belial9826 dice:

      Hola mauro, claro que si, para ahorrar trabajo se usa un objeto de tipo JPasswordField, a continuación un ejemplo claro de esto:

      Espero te sirva 😉 Recuerda que compartir, dar likes ó +1 es gratis 🙂

  23. Avatar de JUan JUan dice:

    Gracias parcero, muy informativo y bien elaborado 🙂

  24. Avatar de fernando fernando dice:

    muy buena guia

  25. Avatar de Julio Franco Julio Franco dice:

    Cordial saludo,
    excelente tutorial, me ha servido de mucho…gracias

  26. Avatar de Josh Josh dice:

    Hola!! Muchas gracias por tu post, me ha sido de mucha ayuda.
    Igual estudio ISC pero yo soy de México, es padrísimo como por estos medios podemos convivir de esta manera.
    Espero estés muy bien.
    Saludos!!! 🙂

  27. Avatar de Miguel Miguel dice:

    Gracias por el aporte!

  28. Avatar de belial9826 belial9826 dice:

    Hola @LuisEnrique, el blog esta para orientar mas no para hacer los trabajos, mas sin embargo te interesara ver el siguiente post, ya que allí se muestra un ejemplo practico de una calculadora básica con los requerimientos tuyos. Espero te sirva 😉

  29. Avatar de Luis Enrique Luis Enrique dice:

    nesesito un programa que me de tire el resultade de suma ressta div mult usando JOptionPane y que el ciclo se repita utilizando un while

    por Ejemplo:

    ———————
    l result: l
    ———————
    la suma es:….
    la resta es…..
    la muti….
    ———————

  30. Avatar de HEYNER HEYNER dice:

    METODOS DE ENTRADA Y DE SALIDA

  31. Avatar de hugo Ruiz martinez hugo Ruiz martinez dice:

    Excelente tutorial. Grracias.

  32. Avatar de lfe lfe dice:

    Muy buen post amigo… la verdad que los ejemplos son concisos y claros… XD .. gracias…

  33. Avatar de Paul Paul dice:

    Muy bueno el tutorial….. sigue así demostrando talento y capacidad

  34. Avatar de Andres Andres dice:

    Buen tutorial amigo justo lo que necesitaba..!!! Gracias

  35. Avatar de jhon jhon dice:

    bn tutorial , gracias (thanks)

Deja una respuesta

Artículos Relacionados

Síguenos