Programación General > Java

 Capturar Mediante Joptionpane

(1/1)

DEKAN:
Hola.

Disculpen la molestia tengo una pregunta, usando JOptionPane como se le pueden agregar opciones para que de esta forma se pueda elegir una de por ejemplo 3 diferentes en un tipo "menu desplegable" y validarla posteriormente en un Switch?...he intentado como String pero se salta y no me efectua las operaciones, algo no me ha quedado claro, he visto como crearlo en el tutorial de Sun pero solo viene ingresando un valor y cuando agrego mas obtengo errores. Lo hice sin option pane y pidiendole valores al usuario desde consola y corre excelente. Mi duda es con etsa modalidad de OptionPane

Les pongo un pedazo del codigo...tal vez no me explique bien  :rolleyes:  

 
--- Código: Text ---   Object[] possibilities = {"Ball", "Globe", "Balloon", "Orange"}; String s = (String)JOptionPane.showInputDialog(frame,"Ejercicio" + "Ingrese su opcion:\n","Ventana",JOptionPane.INFORMATION_MESSAGE,icon,possibilities," " );  
Para obtener un menu parecido a este (tomado de la pagina de java.sun.com)
IMAGEN ADJUNTA

Marcando errores en Frame y icon.

Y porteriormente en el switch lo mando llamar asi:


--- Código: Text ---if (s=="Ball") { String s1 = (String)JOptionPane.showInputDialog(" Introduce el Radio \n");radio=Integer.parseInt(s1) //...asi varios objetos mas creados en otro archivo  
Asi pide radio, x, y, z para calcular un cuerpo esferico... el chiste es ke no entra al switch  :(

DEKAN:
Ok...actualizando...logre sacar el menu con las opciones  :lol:

Ahora la duda es...al entrar al switch me pregunta los valores y aunke estan declarados como double en otra clase, si ingreso un numero decimal truena despues del primer valor pero si ingreso enteros corre perfectamente

--- Código: Text ---double radio, x1,y1,z1;if (s=="Ball") { String s1 = (String)JOptionPane.showInputDialog(" Introduce el Radio \n");radio=Integer.parseInt(s1);//....Asi para x,y,z  
Lo que pasa eske necesito los 4 valores  y el usuario los debe ingresar, acaso sera el parseInt? :huh: intente un parseDouble y creo no va por ahi porke me marco error  :ouch:   o lo estare captando mal?

Gracias de antemano  :hola:

jpaler:
¡¡¡ ay dios !!!
...,compadre dekan, lo q pasa es q ud no puede venir y comparar dos tipos
de datos String de la forma como lo esta haciendo: if (s=="Ball"){
la manera correcta de comparar String's en java es: if (s.equals("Ball")) {

Salu2 !!!

DEKAN:

--- Cita de: "jpaler" --- ¡¡¡ ay dios !!!
...,compadre dekan, lo q pasa es q ud no puede venir y comparar dos tipos
de datos String de la forma como lo esta haciendo: if (s=="Ball"){
la manera correcta de comparar String's en java es: if (s.equals("Ball")) {

Salu2 !!!
--- Fin de la cita ---
jiijjiijij...ke raro, porke si funciona, si valida en el Switch  :P  con el "==" y lo trate de la forma ke comentas y funciona igual, aunke sigo teninedo el mismo error de los numeros decimales...Ingresando  enteros la cosa cambia, sea cualquiera de las 2 formas valida la opcion y efectua todo, de hecho me arroja resultados double, pero no me los acepta desde las ventanas OptionPane...bueno seguire buscando en una de esas "me ilumino"  :comp:

gracias por la respuesta  :hola:
-----------------------------------------------------------------------------------------------

EDITADO:

Lo dicho...me he iluminado  :smartass:  y un error bobo, tenia un Integer parseInt...logico ke me iba a capturar enteros, mi opcion fue:


--- Código: Text ---Double.parseDouble() 
Jijijiji... :hola:

Navegación

[0] Índice de Mensajes

Ir a la versión completa