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.!

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

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

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..

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....

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?

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...

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

for para tablas de multiplicar

Hola a todos voy iniciando en programación, y de creo que voy bien, solo me tope con este pequeño problema que para muchos es facil solo que de plano yo no he podido salir, solo es un programa que pide un numero de tabla de multiplicar para luego imprimirla, mi problema no se imprime en un solo mensaje si no que se manda desplegar en varios...
cómo lo hago?

int numero;
String leer;

leer = JOptionPane.showInputDialog("INTRODUCE EL NUMERO DE TABLA");
numero = Integer.parseInt(leer);

for (int i=1;i<=10;i++){
JOptionPane.showMessageDialog(null,""+numero+" * "+i+" = " + ""+(i*numero));
}
}

}