lunes, 21 de enero de 2013

JAVA: distintos componentes en JPanel

A continuación vamos a ver la manera de sacar, fácil y rápidamente, diversos componentes en un JPanel, que saldrán a modo de diálogo. Vamos a usar instancias de la clase JOptionPane.

Cuadro de texto


Para mostrar un cuadro de texto, y almacenar el input en una variable, simplemente haremos:

String name = JOptionPane.showInputDialog(new JFrame(),
    "Element Name", "");


Y en la variable name tendremos el texto introducido.

Opciones tipo Si/No/Cancelar


En este caso, damos al usuario dos o tres opciones. Podrá elegir una pulsando el botón adecuado:

Object[] options = {"opcion A", "opcion B", "opcion C"};
int opt = JOptionPane.showOptionDialog(new JFrame(), "Type", "Select option type",
  JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null,
  options, options[1]);

El entero que recibimos en opt será el índice de la opción seleccionada.

Spinner numérico


En esta ocasión, el usuario verá un spinner donde podrá elegir un valor numérico:


SpinnerModel sm = new SpinnerNumberModel(0,0,360, 25);
JSpinner jsp = new JSpinner(sm);
JOptionPane.showOptionDialog(null, jsp, "Number of cars per hour", JOptionPane.CLOSED_OPTION, JOptionPane.CLOSED_OPTION, null, null, null);
El valor retornado lo tendremos en sm.getValue();



Lista de opciones desplegable

Aquí, mostramos un desplegable con las opciones que puede seleccionar el usuario:


Object[] speedOptions = {"30","50","70","90","100","120"};

Object seleccion = JOptionPane.showInputDialog(
  new JFrame(),
     "Select max speed",
     "Options",
     JOptionPane.QUESTION_MESSAGE,
     null,  
     speedOptions, 
     speedOptions[4]);


En el objeto de retorno seleccion obtendremos el valor del objeto del Array seleccionado.



Más Información en chuwiki: JOptionPane y diálogos modales.