Dudas sobre JOptionPane

Hola, soy nuevo en esto de la programación y ahora mismo estoy haciendo un programita en el que estoy usando JOptionPane.

Mi inquietud es saber si puedo hacer que utilizando JOptionPane.showInputDialog.....etc. cuando corre el programa si presiono la tecla esc me regrese a la ventana anterior o nos muestre otra ventana.

De antemano gracias por la ayuda, espero haber sido claro.

Un cordial saludo a los programadores en Java.!

Ya recorde con que batallo

Imagen de Alberto Arellano

Resulta que utilizo el JOptionPane.... asi:

try{
     resp=integer.parseInt(JOptionPane.showInputDialog(null,"inserta un numero aqui:"));
}
catch(NumberformatException e){
    JOptionPane.showMessageDialog(null,"Valor invalido");
}

como hago para que no caiga en esa excepcion si presiono la tecla esc?

Dos pasos

Imagen de ezamudio

Primero cachas la cadena que devuelve showInputDialog, y luego ya ves si es null o no para ver si la conviertes en numero o no.

Given the choice of dancing pigs and security, users will choose dancing pigs, every single time. - Steve Riley

puedes probar algo como esto

puedes probar algo como esto anque deberias leer un poco mas es sencillo

import javax.swing.*;

public class Prueba2
{
        public static void main(String args[])
        {
                boolean ciclo=true;
                String resp=null;
                //tu menu de opciones
                while(ciclo)
                {
                        resp=JOptionPane.showInputDialog("introduce algo, preciona esc/enter");
                       
                        if(resp==null)
                        {
                                //codigo cuando preciones esc
                               
                                //salir del menu
                                ciclo=!ciclo;
                                System.out.println("tecleaste: esc adios   "+resp);
                        }
                       
                               
                        if(resp!=null)
                        {
                                //codigo cuando escribes algo
                               
                                System.out.println("tecleaste:"+resp);
                        }
                }
        }
}

claro que puedes mejorar esto ya depende de ti, saludos..

Por favor lee el tema que dice Ya me acorde con que batallo

Imagen de Alberto Arellano

Disculpa que maneje el foro de manera extraña no habia utilizado este recurso antes...

Depende del SO

Imagen de ezamudio

Pues parece que depende del sistema operativo.. acabo de programar en Mac un pequeño programa que abre un diálogo de entrada con JOptionPane como mencionas... si aprieto ESC, se cierra como si hubiera apretado cancelar y me devuelve null. Si aprieto enter, es como haber apretado el botón de OK y me devuelve lo que puse.

Ahorita sinceramente no tengo tiempo de probar esto en windows pero supongo que debe funcionar de manera similar.

import javax.swing.*;

public class Prueba {

        public static void main(String[] args) {
                String x = JOptionPane.showInputDialog(null, "pon algo");
                System.out.printf("Teclearon %s%n", x);
        }

}

Given the choice of dancing pigs and security, users will choose dancing pigs, every single time. - Steve Riley

Igual

Probe su codigo en windows, de igual manera al presionar ESC se cierra la ventana como si le hubieran dado cancelar, devuelve null

Muchas gracias...!!!

Imagen de Alberto Arellano

El valor con el que se queda la referencia cuando presionas esc es lo que querìa saber, me abrieron los ojos, ya estaba todo frustado. Le agradezco la ayuda y los comentarios....