• Jueves 14 de Noviembre de 2024, 21:45

Autor Tema:  Capturar Mediante Joptionpane  (Leído 4146 veces)

DEKAN

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Capturar Mediante Joptionpane
« en: Miércoles 19 de Septiembre de 2007, 05:40 »
0
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
  1.  
  2.   Object[] possibilities = {"Ball", "Globe", "Balloon", "Orange"};
  3. String s = (String)JOptionPane.showInputDialog(frame,"Ejercicio" + "Ingrese su opcion:\n","Ventana",JOptionPane.INFORMATION_MESSAGE,icon,possibilities," " );
  4.  

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
  1. if (s=="Ball") {
  2.  
  3. String s1 = (String)JOptionPane.showInputDialog(" Introduce el Radio \n");
  4. radio=Integer.parseInt(s1)
  5.  
  6. //...asi varios objetos mas creados en otro archivo
  7.  
  8.  

Asi pide radio, x, y, z para calcular un cuerpo esferico... el chiste es ke no entra al switch  :(
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

DEKAN

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: Capturar Mediante Joptionpane
« Respuesta #1 en: Miércoles 19 de Septiembre de 2007, 06:35 »
0
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
  1. double radio, x1,y1,z1;
  2. if (s=="Ball") {
  3.  
  4. String s1 = (String)JOptionPane.showInputDialog(" Introduce el Radio \n");
  5. radio=Integer.parseInt(s1);
  6. //....Asi para x,y,z
  7.  
  8.  

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

  • Miembro MUY activo
  • ***
  • Mensajes: 479
    • Ver Perfil
Re: Capturar Mediante Joptionpane
« Respuesta #2 en: Miércoles 19 de Septiembre de 2007, 13:51 »
0
¡¡¡ 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

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: Capturar Mediante Joptionpane
« Respuesta #3 en: Miércoles 19 de Septiembre de 2007, 16:38 »
0
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 !!!
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
  1. Double.parseDouble()
  2.  

Jijijiji... :hola: