sábado, 24 de noviembre de 2012

JOptionPane.showInputDialog()


JOptionPane.showInputDialog()
Tenemos varios métodos JOptionPane.showInputDialog() y la diferencia entre ellos es que tienen más o menos parámetros, según queramos aceptar o no las opciones por defecto. Los parámetros y sus significados son muy similares a los del método showOptionDialog(), pero hay una diferencia.
Si usamos los métodos que no tienen array de opciones, la ventana mostrará una caja de texto para que el usuario escriba la opción que desee (un texto libre). Si usamos un método que tenga un array de opciones, entonces aparecerá en la ventana un JComboBox en vez de una caja de texto, donde estarán las opciones que hemos pasado.
Aquí un par de trozos de código, el primero para conseguir una caja de texto,
// Con caja de texto
String seleccion = JOptionPane.showInputDialog(
   unComponentePadre,
   "Input dialog",
   JOptionPane.QUESTION_MESSAGE);  // el icono sera un iterrogante
       
System.out.println("El usuario ha escrito "+seleccion);


y la imagen que obtenemos con este código:


JOptionPane.showOptionDialog()


JOptionPane.showOptionDialog()
Tenemos un método JOptionPane.showOptionDialog() que nos muestra la ventana más configurable de todas, en ella debemos definir todos los botones que lleva. De hecho, las demás ventanas disponibles con JOptionPane se construyen a partir de esta. Por ello, al método debemos pasarle muchos parámetros:
  • parentComponent: A partir de este componente, se intentará determinar cual es la ventana que debe hacer de padre del JOptionPane. Se puede pasar null, pero conviene pasar, por ejemplo, el botón desde el cual se lanza la acción que provoca que se visualice el JOptionPane. De esta manera, la ventana de aviso se visualizará sobre el botón y no se podrá ir detrás del mismo si hacemos click en otro sitio.
  • message: El mensaje a mostrar, habitualmente un String, aunque vale cualquier Object cuyo método toString() devuelva algo con sentido.
  • title: El título para la ventana.
  • optionType: Un entero indicando qué opciones queremos que tenga la ventana. Los posibles valores son las constantes definidas en JOptionPane: DEFAULT_OPTION, YES_NO_OPTION, YES_NO_CANCEL_OPTION, o OK_CANCEL_OPTION.
  • messageType: Un entero para indicar qué tipo de mensaje estamos mostrando. Este tipo servirá para que se determine qué icono mostrar. Los posibles valores son constantes definidas en JOptionPane: ERROR_MESSAGE, INFORMATION_MESSAGE, WARNING_MESSAGE, QUESTION_MESSAGE, o PLAIN_MESSAGE
  • icon: Un icono para mostrar. Si ponemos null, saldrá el icono adecuado según el parámetro messageType.
  • options: Un array de objects que determinan las posibles opciones. Si los objetos son componentes visuales, aparecerán tal cual como opciones. Si son String, el JOptionPane pondrá tantos botones como String. Si son cualquier otra cosa, se les tratará como String llamando al método toString(). Si se pasa null, saldrán los botones por defecto que se hayan indicado en optionType.
  • initialValue: Selección por defecto. Debe ser uno de los Object que hayamos pasado en el parámetro options. Se puede pasar null.
La llamada a JOptionPane.showOptionDialog() devuelve un entero que representa la opción que ha seleccionado el usuario. La primera de las opciones del array es la posición cero. Si se cierra la ventana con la cruz de la esquina superior derecha, el método devolverá -1.
Aquí un ejemplo de cómo llamar a este método
int seleccion = JOptionPane.showOptionDialog(
   unComponentePadre,
   "Seleccione opcion",
   "Selector de opciones",
   JOptionPane.YES_NO_CANCEL_OPTION,
   JOptionPane.QUESTION_MESSAGE,
   unIcono,    // null para icono por defecto.
   new Object[] { "opcion 1", "opcion 2", "opcion 3" },   // null para YES, NO y CANCEL
   "opcion 1");

if (seleccion != -1)
   System.out.println("seleccionada opcion " + (seleccion + 1));
y la ventana que se obtiene con el código anterior



paleteria (JAVA)

bueno he aqui un codigo que simula una paleteria y algo de lo se vande en ella




public static void main(String[] args) {
int regreso;

int hola;
hola = JOptionPane.showOptionDialog(null,
"Bienvenido a la paleteria ¨N1RVANA¨\n Desaea continuar?",
"Bienvenido", JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE, null, new Object[] {
"Si, Deseo continuar", "No gracias" }, null);
if (hola == 1) {
JOptionPane.showMessageDialog(null, "Vuele pronto");

} else {
do {
int compra = 0;
try {

compra = Integer
.parseInt(JOptionPane
.showInputDialog(
null,
"¿Que desea comprar?\n"
+ "1=Nachos \n 2=Tostilocos \n 3=paletas \n 4=Aguas \n 5= nieves"));
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "solo numeros");
// TODO: handle exception
}
switch (compra) {
case 1: {
int tam=0;
try{
tam = Integer
.parseInt(JOptionPane
.showInputDialog(
null,
"De que tamaño quieres tus nachos? "
+ "\n 1= Grandes \n 2= Medianos \n 3=chicos"));
} catch (Exception e) {JOptionPane.showMessageDialog(null, "solo numeros");
// TODO: handle exception
}
switch (tam) {
case 1: {
JOptionPane.showMessageDialog(null,
"Usted compro unos nachos grnades.");

}
break;
case 2: {
JOptionPane.showMessageDialog(null,
"Usted compro unos nachos medianos.");

}
break;
case 3: {
JOptionPane.showMessageDialog(null,
"Usted compro unos nachos chicos.");

}
break;
default:
JOptionPane.showMessageDialog(null,
"Usted no selecciono un tamaño");
break;
}

}
break;

case 2: {
int esp=0;
try{
esp = Integer.parseInt(JOptionPane.showInputDialog(null,
"De que especialidad quieres tus Tostilocos?"
+ " \n 1= Chamoy \n 2= Flamig"));} catch (Exception e) {JOptionPane.showMessageDialog(null, "solo numeros");
// TODO: handle exception
}

if (esp == 1) {
JOptionPane.showMessageDialog(null,
"Usted compro unos tostitos chamoy");
} else if (esp == 2) {
JOptionPane.showMessageDialog(null,
"Usted compro unos tostitos Flaming");
} else {
JOptionPane.showMessageDialog(null,
"Usted no selecciono ninguna especialidad");

}
}
break;
case 3: {
int tam=0;
try{
tam = Integer.parseInt(JOptionPane.showInputDialog(null,
"De que tamaño quieres tu paleta? "
+ "\n 1= Grande \n 2= Mediana \n 3=chica"));
} catch (Exception e) {JOptionPane.showMessageDialog(null, "solo numeros");
// TODO: handle exception
}
switch (tam) {
case 1: {int sab=0;
try {


sab = Integer.parseInt(JOptionPane.showInputDialog(null,
"De que sabor quieres tu paleta grande? "
+ "\n 1= coco \n 2= guanabana \n 3= fresa \n 4= chocolate \n 5= naranja \n 6= mango \n 7= manzana  " +
"\n 8= vainilla \n 9= melon \n 10= sandia "));

} catch (Exception e) {JOptionPane.showMessageDialog(null, "solo numeros");
switch (sab) {
case 1:{JOptionPane.showMessageDialog(null, "usted compro una paleta grande de coco");}

break;
case 2:{JOptionPane.showMessageDialog(null, "usted compro una paleta grande de guanabana");}

break;case 3:{JOptionPane.showMessageDialog(null, "usted compro una paleta grande de fresa");}

break;case 4:{JOptionPane.showMessageDialog(null, "usted compro una paleta grande de chocolate");}

break;case 5:{JOptionPane.showMessageDialog(null, "usted compro una paleta grande de naranja");}

break;case 6:{JOptionPane.showMessageDialog(null, "usted compro una paleta grande de mango");}

break;case 7:{JOptionPane.showMessageDialog(null, "usted compro una paleta grande de manzana");}

break;case 8:{JOptionPane.showMessageDialog(null, "usted compro una paleta grande de vainilla");}

break;case 9:{JOptionPane.showMessageDialog(null, "usted compro una paleta grande de melon");}

break;
case 10:{JOptionPane.showMessageDialog(null, "usted compro una paleta grande de sandia");}

break;

default:{JOptionPane.showMessageDialog(null, "no selecciono nungun sabor");
break;
}
// TODO: handle exception
}
}
break;}
case 2: {int sab=0;
try {
sab = Integer.parseInt(JOptionPane.showInputDialog(null,
"De que sabor quieres tu paleta mediana? "
+ "\n 1= coco \n 2= guanabana \n 3= fresa \n 4= chocolate \n 5= naranja \n 6= mango \n 7= manzana  " +
"\n 8= vainilla \n 9= melon \n 10= sandia "));
switch (sab) {
case 1:{JOptionPane.showMessageDialog(null, "usted compro una paleta mediana de coco");}

break;
case 2:{JOptionPane.showMessageDialog(null, "usted compro una paleta mediana de guanabana");}

break;case 3:{JOptionPane.showMessageDialog(null, "usted compro una paleta mediana de fresa");}

break;case 4:{JOptionPane.showMessageDialog(null, "usted compro una paleta mediana de chocolate");}

break;case 5:{JOptionPane.showMessageDialog(null, "usted compro una paleta mediana de naranja");}

break;case 6:{JOptionPane.showMessageDialog(null, "usted compro una paleta mediana de mango");}

break;case 7:{JOptionPane.showMessageDialog(null, "usted compro una paleta mediana de manzana");}

break;case 8:{JOptionPane.showMessageDialog(null, "usted compro una paleta mediana de vainilla");}

break;case 9:{JOptionPane.showMessageDialog(null, "usted compro una paleta mediana de melon");}

break;
case 10:{JOptionPane.showMessageDialog(null, "usted compro una paleta mediana de sandia");}

break;

default:{JOptionPane.showMessageDialog(null, "no selecciono nungun sabor");
break;
}

}} catch (Exception e) {JOptionPane.showMessageDialog(null, "solo numeros");
// TODO: handle exception
}

}
break;
case 3: {
int sab=0;
try{
sab = Integer.parseInt(JOptionPane.showInputDialog(null,
"De que sabor quieres tu paleta chica? "
+ "\n 1= coco \n 2= guanabana \n 3= fresa \n 4= chocolate \n 5= naranja \n 6= mango \n 7= manzana  " +
"\n 8= vainilla \n 9= melon \n 10= sandia "));

} catch (Exception e) {JOptionPane.showMessageDialog(null, "solo numeros");
// TODO: handle exception
}

switch (sab) {
case 1:{JOptionPane.showMessageDialog(null, "usted compro una paleta chica de coco");}

break;
case 2:{JOptionPane.showMessageDialog(null, "usted compro una paleta chica de guanabana");}

break;case 3:{JOptionPane.showMessageDialog(null, "usted compro una paleta chica de fresa");}

break;case 4:{JOptionPane.showMessageDialog(null, "usted compro una paleta chica de chocolate");}

break;case 5:{JOptionPane.showMessageDialog(null, "usted compro una paleta chica de naranja");}

break;case 6:{JOptionPane.showMessageDialog(null, "usted compro una paleta chica de mango");}

break;case 7:{JOptionPane.showMessageDialog(null, "usted compro una paleta chica de manzana");}

break;case 8:{JOptionPane.showMessageDialog(null, "usted compro una paleta chica de vainilla");}

break;case 9:{JOptionPane.showMessageDialog(null, "usted compro una paleta chica de melon");}

break;
case 10:{JOptionPane.showMessageDialog(null, "usted compro una paleta chica de sandia");}

break;

default:{JOptionPane.showMessageDialog(null, "no selecciono nungun sabor");
break;
}




}
break;}

default:
JOptionPane.showMessageDialog(null,
"usted no selecciono ningun tamaño");
break;
}

}
break;

case 4: {
int tam = 0;
try{
tam = Integer.parseInt(JOptionPane.showInputDialog(null,
"De que tamaño quieres tu Agua? "
+ "\n 1= Grande \n 2= Mediana \n 3=chica"));

} catch (Exception e) {JOptionPane.showMessageDialog(null, "solo numeros");

// TODO: handle exception
}


switch (tam) {
case 1: {int sab=0;
try{
sab = Integer.parseInt(JOptionPane.showInputDialog(null,
"De que sabor quieres tu agua grande? "
+ "\n 1= coco \n 2= horchata \n 3= fresa \n 4= chocolate \n 5= naranja \n 6= mango \n 7= manzana  " +
"\n 8= durazno \n 9= melon \n 10= sandia "));
} catch (Exception e) {JOptionPane.showMessageDialog(null, "solo numeros");
// TODO: handle exception
} switch (sab) {
case 1:{JOptionPane.showMessageDialog(null, "usted compro un agua grande de coco");}

break;
case 2:{JOptionPane.showMessageDialog(null, "usted compro un agua grande de horchata");}

break;case 3:{JOptionPane.showMessageDialog(null, "usted compro un agua grande de fresa");}

break;case 4:{JOptionPane.showMessageDialog(null, "usted compro un agua grande de chocolate");}

break;case 5:{JOptionPane.showMessageDialog(null, "usted compro un agua grande de naranja");}

break;case 6:{JOptionPane.showMessageDialog(null, "usted compro un agua grande de mango");}

break;case 7:{JOptionPane.showMessageDialog(null, "usted compro un agua grande de manzana");}

break;case 8:{JOptionPane.showMessageDialog(null, "usted compro un agua grande de durazno");}

break;case 9:{JOptionPane.showMessageDialog(null, "usted compro un agua grande de melon");}

break;
case 10:{JOptionPane.showMessageDialog(null, "usted compro un paleta agua de sandia");}

break;

default:{JOptionPane.showMessageDialog(null, "no selecciono nungun sabor");
break;
}

}
break;}
case 2: {int sab=0;
try{
sab = Integer.parseInt(JOptionPane.showInputDialog(null,
"De que sabor quieres tu agua mediana? "
+ "\n 1= coco \n 2= horchata \n 3= fresa \n 4= chocolate \n 5= naranja \n 6= mango \n 7= manzana  " +
"\n 8= durazno \n 9= melon \n 10= sandia "));
}
catch (Exception e) {JOptionPane.showMessageDialog(null, "solo numeros");
// TODO: handle exception
} switch (sab) {
case 1:{JOptionPane.showMessageDialog(null, "usted compro un agua grande de coco");}

break;
case 2:{JOptionPane.showMessageDialog(null, "usted compro un  agua mediana de horchata");}

break;case 3:{JOptionPane.showMessageDialog(null, "usted compro un agua mediana de fresa");}

break;case 4:{JOptionPane.showMessageDialog(null, "usted compro un agua mediana de chocolate");}

break;case 5:{JOptionPane.showMessageDialog(null, "usted compro un agua mediana de naranja");}

break;case 6:{JOptionPane.showMessageDialog(null, "usted compro un agua mediana de mango");}

break;case 7:{JOptionPane.showMessageDialog(null, "usted compro un agua mediana de manzana");}

break;case 8:{JOptionPane.showMessageDialog(null, "usted compro un agua mediana de durazno");}
break;case 9:{JOptionPane.showMessageDialog(null, "usted compro un agua mediana de melon");}

break;
case 10:{JOptionPane.showMessageDialog(null, "usted compro un  agua de sandia");}

break;

default:{JOptionPane.showMessageDialog(null, "no selecciono nungun sabor");
break;
}

}



}
break;
case 3: {
int sab=0;
try{
sab = Integer.parseInt(JOptionPane.showInputDialog(null,
"De que sabor quieres tu agua chica? "
+ "\n 1= coco \n 2= horchata \n 3= fresa \n 4= chocolate \n 5= naranja \n 6= mango \n 7= manzana  " +
"\n 8= durazno \n 9= melon \n 10= sandia "));
} catch (Exception e) {JOptionPane.showMessageDialog(null, "solo numeros");
// TODO: handle exception
}switch (sab) {
case 1:{JOptionPane.showMessageDialog(null, "usted compro un agua chica de coco");}

break;
case 2:{JOptionPane.showMessageDialog(null, "usted compro un  agua chica de horchata");}

break;case 3:{JOptionPane.showMessageDialog(null, "usted compro un agua chica de fresa");}

break;case 4:{JOptionPane.showMessageDialog(null, "usted compro un agua chica de chocolate");}

break;case 5:{JOptionPane.showMessageDialog(null, "usted compro un agua chica de naranja");}

break;case 6:{JOptionPane.showMessageDialog(null, "usted compro un agua chica de mango");}

break;case 7:{JOptionPane.showMessageDialog(null, "usted compro un agua chica de manzana");}

break;case 8:{JOptionPane.showMessageDialog(null, "usted compro un agua chica de durazno");}

break;case 9:{JOptionPane.showMessageDialog(null, "usted compro unaagua chica de melon");}

break;
case 10:{JOptionPane.showMessageDialog(null, "usted compro un  agua chica de sandia");}

break;

default:{JOptionPane.showMessageDialog(null, "no selecciono nungun sabor");
break;
}

}

}
break;

default:
JOptionPane.showMessageDialog(null,
"usted no selecciono ningun tamaño");
break;
}

}
break;

case 5: {
int tam=0;
try{
tam = Integer.parseInt(JOptionPane.showInputDialog(null,
"De que tamaño quieres tu NIeve? "
+ "\n 1= Grande \n 2= Mediana \n 3=chica"));} catch (Exception e) {JOptionPane.showMessageDialog(null, "solo numeros");
// TODO: handle exception
}

switch (tam) {
case 1: {Object bol =  JOptionPane.showInputDialog(
  null,
  "De que quiere su primer bola de nieve?",
  "BOLAS",
  JOptionPane.QUESTION_MESSAGE,
  null,
  new Object[] { "\n  coco", "\n  horchata ","\n  fresa ","\n  chocolate"," \n  naranja"," \n  mango"," \n  manzana  ",
"\n  durazno"," \n  melon"," \n  sandia "}, "coco");
Object bok =  JOptionPane.showInputDialog(
  null,
  "De que quiere su segunda bola de nieve?",
  "BOLAS",
  JOptionPane.QUESTION_MESSAGE,
  null,
  new Object[] { "\n  coco", "\n  horchata ","\n  fresa ","\n  chocolate"," \n  naranja"," \n  mango"," \n  manzana  ",
"\n  durazno"," \n  melon"," \n  sandia "}, "coco");
Object boj =  JOptionPane.showInputDialog(
  null,
  "De que quiere su tercer bola de nieve?",
  "BOLAS",
  JOptionPane.QUESTION_MESSAGE,
  null,
  new Object[] { "\n  coco", "\n  horchata ","\n  fresa ","\n  chocolate"," \n  naranja"," \n  mango"," \n  manzana  ",
"\n  durazno"," \n  melon"," \n  sandia "}, "coco");
JOptionPane.showMessageDialog(null, "Usted compro una nieve con:"+bol+bok+boj);


}
break;
case 2: {Object bol =  JOptionPane.showInputDialog(
  null,
  "De que quiere su primer bola de nieve?",
  "BOLAS",
  JOptionPane.QUESTION_MESSAGE,
  null,
  new Object[] { "\n  coco", "\n  horchata ","\n  fresa ","\n  chocolate"," \n  naranja"," \n  mango"," \n  manzana  ",
"\n  durazno"," \n  melon"," \n  sandia "}, "coco");
Object bok =  JOptionPane.showInputDialog(
  null,
  "De que quiere su segunda bola de nieve?",
  "BOLAS",
  JOptionPane.QUESTION_MESSAGE,
  null,
  new Object[] { "\n  coco", "\n  horchata ","\n  fresa ","\n  chocolate"," \n  naranja"," \n  mango"," \n  manzana  ",
"\n  durazno"," \n  melon"," \n  sandia "}, "coco");

JOptionPane.showMessageDialog(null, "Usted compro una nieve con:"+bol+bok);
}
break;










case 3: {
int sab=0;
try{
sab = Integer.parseInt(JOptionPane.showInputDialog(null,
"De que sabor quieres tu nieve chica? "
+ "\n 1= coco \n 2= horchata \n 3= fresa \n 4= chocolate \n 5= naranja \n 6= mango \n 7= manzana  " +
"\n 8= durazno \n 9= melon \n 10= sandia "));
} catch (Exception e) {JOptionPane.showMessageDialog(null, "solo numeros");
// TODO: handle exception
}
switch (sab) {
case 1:{JOptionPane.showMessageDialog(null, "usted compro un nieve chica de coco");}

break;
case 2:{JOptionPane.showMessageDialog(null, "usted compro un  nieve chica de guanabana");}

break;case 3:{JOptionPane.showMessageDialog(null, "usted compro un nieve chica de fresa");}

break;case 4:{JOptionPane.showMessageDialog(null, "usted compro un nieve chica de chocolate");}

break;case 5:{JOptionPane.showMessageDialog(null, "usted compro un nieve chica de naranja");}

break;case 6:{JOptionPane.showMessageDialog(null, "usted compro un nieve chica de mango");}

break;case 7:{JOptionPane.showMessageDialog(null, "usted compro un nieve chica de manzana");}

break;case 8:{JOptionPane.showMessageDialog(null, "usted compro un nieve chica de vainilla");}

break;case 9:{JOptionPane.showMessageDialog(null, "usted compro un nieve chica de melon");}

break;
case 10:{JOptionPane.showMessageDialog(null, "usted compro un  nieve chica de sandia");}

break;

default:{JOptionPane.showMessageDialog(null, "no selecciono nungun sabor");
break;
}

}
}
break;

default:
JOptionPane.showMessageDialog(null,
"usted no selecciono ningun tamaño");
break;
}

}
break;
}
String kak = JOptionPane.showInputDialog(null,
" ¿Desea  comprar algo mas ?\n1 Si \n2 No ",
JOptionPane.INFORMATION_MESSAGE);
regreso = Integer.parseInt(kak);
} while (regreso == 1);
JOptionPane.showMessageDialog(null, "Gracias por su compra ", null,
JOptionPane.INFORMATION_MESSAGE);

}
}