09 Guiados Spinner

download 09 Guiados Spinner

of 4

Transcript of 09 Guiados Spinner

  • 7/22/2019 09 Guiados Spinner

    1/4

    Curso de Java Bsico

    http://procesinc.com/

    JAVA: SPINNER

    Introduccin a los JSpinner

    La clase JSpinner permite crear cuadros como el siguiente:

    Son elementos muy comunes en los programas. A travs de los dos botones triangulares sepuede hacer que el valor del cuadro aumente o disminuya. Tambin se puede escribirdirectamente un valor dentro del cuadro.

    Ejercicio guiado

    1. Crea un nuevo proyecto.

    2. Aade en l un JSpinner. Su nombre ser spiValor .

    3. Aade una etiqueta con borde. Su nombre ser etiValor .

    4. La ventana tendr el siguiente aspecto:

    5. Interesa que cuando cambie el JSpinner (ya sea porque se pulsaron los botonestriangulares o porque se escribi dentro) aparezca el valor correspondiente dentro dela etiqueta. Para ello, tendr que programar el evento stateChanged del JSpinner.

    En el evento stateChanged introduzca el siguiente cdigo:

    etiValor.setText("El valor es: "+spiValor.getValue().toString());

    http://procesinc.com/http://procesinc.com/http://procesinc.com/
  • 7/22/2019 09 Guiados Spinner

    2/4

    Curso de Java Bsico

    http://procesinc.com/

    6. Como puedes observar, lo que hace el programa es recoger el valor que tiene elJSpinner a travs del mtodo getValue y luego se lo asigna a la etiqueta con elclsico setText . (Es muy parecido a los deslizadores)

    Debes tener en cuenta que el valor devuelto no es un nmero ni una cadena, as queen el ejemplo se ha usado el mtodo toString() para convertirlo a una cadena.

    7. Prueba el programa y observa su funcionamiento:

    8. Observa como los valores del JSpinner aumentan o disminuyen en 1. Por otro lado,no parece haber un lmite para los valores del JSpinner.

    La pregunta ahora es: Se puede modificar el contenido del JSpinner de forma quetenga unos valores concretos? La respuesta es s. Veamos como hacerlo.

    9. Entra dentro del cdigo del programa y, dentro del constructor, aade este cdigodebajo de initComponents :

    SpinnerNumberModel nm = new SpinnerNumberModel();nm.setMaximum(10);nm.setMinimum(0);spiValor.setModel(nm);

    10. Este cdigo hace lo siguiente:

    a. El JSpinner, al igual que los JList y los JComboBox, es un objeto que contieneotro objeto modelo, y es el objeto modelo el que contiene los nmerosvisualizados en el JSpinner.

    b. En el cdigo anterior se crea un modelo para el JSpinner, se definen losvalores que contendr, y luego se asigna al JSpinner. Estudiemos las lneasdel cdigo.

    c. La primera lnea crea un modelo llamado nm . Los modelos de los JSpinnerson del tipo SpinnerNumberModel . Necesitars incluir el importcorrespondiente (atento a la bombilla)

    El usuario modifica elvalor del JSpinner...

    Y aqu aparece el valorseleccionado.

    http://procesinc.com/http://procesinc.com/http://procesinc.com/
  • 7/22/2019 09 Guiados Spinner

    3/4

    Curso de Java Bsico

    http://procesinc.com/

    d. En la segunda lnea se define como valor mximo del modelo el 10, a travsde un mtodo llamado setMaximum .

    e. En la tercera lnea se define como valor mnimo del modelo el 0, a travs deun mtodo llamado setMinimum .

    f. Finalmente se asigna el modelo creado al JSpinner.

    g. Este cdigo, en definitiva, har que el JSpinner muestre los valorescomprendidos entre 0 y 10.

    11. Prueba el programa y observa los valores que puede tomar el JSpinner.

    12. Vamos a aadir otra mejora. Cambie el cdigo del constructor por este otro. (Observaque solo se ha aadido una lnea):

    SpinnerNumberModel nm = new SpinnerNumberModel();

    nm.setMaximum(10);nm.setMinimum(0);nm.setStepSize(2);spiValor.setModel(nm);

    13. La lnea aadida es:

    nm.setStepSize(2);

    Esta lnea usa un mtodo del modelo del JSpinner que permite definir el valor decambio del JSPinner. Dicho de otra forma, esta lnea hace que los valores delJSpinner salten de 2 en 2.

    14. Ejecuta el programa de nuevo y observa como cambian los valores del JSpinner.

    15. El modelo del JSpinner tiene tambin un mtodo llamado setValue que permiteasignar un valor inicial al modelo. Pruebe a usar este mtodo para hacer que elJSpinner muestre desde el principio el valor 4.

    Ahora los valores estncomprendidos entre 0 y10

    http://procesinc.com/http://procesinc.com/http://procesinc.com/
  • 7/22/2019 09 Guiados Spinner

    4/4

    Curso de Java Bsico

    http://procesinc.com/

    CONCLUSIN

    Los JSpinners son objetos que permiten seleccionar un nmero, ya sea escribindoloen el recuadro, o bien a travs de dos botones triangulares que permiten aumentar odisminuir el valor actual.

    Los JSpinners son objetos con modelo. Es decir, este objeto contiene a su vez otroobjeto modelo que es el que realmente contiene los datos.

    Datos Modelo JSpinner

    Para definir el contenido del JSpinner es necesario crear un modelo del tipoSpinnerNumberModel. Se le asigna al modelo los nmeros deseados, y finalmente seune el modelo con el JSpinner.

    El objeto modelo del JSpinner permite definir el valor mnimo y el valor mximo, ascomo el intervalo de aumento de los valores.

    http://procesinc.com/http://procesinc.com/http://procesinc.com/