Está en la página 1de 4

EJERCICIO GUIADO.

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 se
puede hacer que el valor del cuadro aumente o disminuya. Tambin se puede escribir
directamente un valor dentro del cuadro.
Eercicio !uiado
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. !nteresa que cuando cambie el JSpinner "ya sea porque se pulsaron los botones
triangulares o porque se escribi# dentro$ apare%ca el valor correspondiente dentro de
la etiqueta. &ara ello' tendr que programar el evento stateChanged del JSpinner.
(n el evento stateChanged introdu%ca el siguiente c#digo:
etiValor.setText("El valor es: "+spiValor.getValue().toString());
. Como puedes observar' lo que hace el programa es recoger el valor que tiene el
JSpinner a travs del mtodo getValue y luego se lo asigna a la etiqueta con el
clsico setText. "(s muy parecido a los desli%adores$
)ebes tener en cuenta que el valor devuelto no es un n*mero ni una cadena' as+ que
en el e,emplo se ha usado el mtodo toString() para convertirlo a una cadena.
!. &rueba el programa y observa su -uncionamiento:
". .bserva como los valores del JSpinner aumentan o disminuyen en /. &or otro lado'
no parece haber un l+mite para los valores del JSpinner.
La pregunta ahora es: 0Se puede modi-icar el contenido del JSpinner de -orma que
tenga unos valores concretos1 La respuesta es s+. 2eamos como hacerlo.
#. (ntra dentro del c#digo del programa y' dentro del constructor' aade este c#digo
deba,o de initComponents:
Spinner$u%&er'o(el n% ) ne* Spinner$u%&er'o(el();
n%.set'axi%u%(1+);
n%.set'ini%u%(+);
spiValor.set'o(el(n%);
1+. (ste c#digo hace lo siguiente:
a. (l JSpinner' al igual que los JList y los JCombo3o4' es un ob,eto que contiene
otro ob,eto 5modelo6' y es el ob,eto 5modelo6 el que contiene los n*meros
visuali%ados en el JSpinner.
b. (n el c#digo anterior se crea un 5modelo6 para el JSpinner' se de-inen los
valores que contendr' y luego se asigna al JSpinner. (studiemos las l+neas
del c#digo.
c. La primera l+nea crea un 5modelo6 llamado nm. Los modelos de los JSpinner
son del tipo SpinnerNumberModel. 7ecesitars incluir el import
correspondiente "atento a la bombilla$
(l usuario modi-ica el
valor del JSpinner...
8 aqu+ aparece el valor
seleccionado.
d. (n la segunda l+nea se de-ine como valor m4imo del modelo el /9' a travs
de un mtodo llamado setMaximum.
e. (n la tercera l+nea se de-ine como valor m+nimo del modelo el 9' a travs de
un mtodo llamado setMinimum.
-. :inalmente se asigna el modelo creado al JSpinner.
g. (ste c#digo' en de-initiva' har que el JSpinner muestre los valores
comprendidos entre 9 y /9.
11. &rueba el programa y observa los valores que puede tomar el JSpinner.
12. 2amos a aadir otra me,ora. Cambie el c#digo del constructor por este otro.
".bserva que solo se ha aadido una l+nea$:
Spinner$u%&er'o(el n% ) ne* Spinner$u%&er'o(el();
n%.set'axi%u%(1+);
n%.set'ini%u%(+);
n%.setStepSi,e(2);
spiValor.set'o(el(n%);
13. La l+nea aadida es:
n%.setStepSi,e(2);
(sta l+nea usa un mtodo del modelo del JSpinner que permite de-inir el valor de
cambio del JS&inner. )icho de otra -orma' esta l+nea hace que los valores del
JSpinner salten de ; en ;.
14. (,ecuta el programa de nuevo y observa como cambian los valores del
JSpinner.
15. (l modelo del JSpinner tiene tambin un mtodo llamado setValue que
permite asignar un valor inicial al modelo. &ruebe a usar este mtodo para hacer que
el JSpinner muestre desde el principio el valor <.
Ahora los valores estn
comprendidos entre 9 y
/9
CONC"USI#N
"os JSpinners son o$etos %ue per&iten seleccionar un n'&ero( )a sea escri$i*ndolo
en el recuadro( o $ien a tra+*s de dos $otones trian!ulares %ue per&iten au&entar o
dis&inuir el +alor actual.
"os JSpinners son o$etos con ,&odelo-. Es decir( este o$eto contiene a su +e. otro
o$eto ,&odelo- %ue es el %ue real&ente contiene los datos.
Datos /odelo JSpinner
Para de0inir el contenido del JSpinner es necesario crear un &odelo del tipo
SpinnerNu&$er/odel. Se le asi!na al &odelo los n'&eros deseados( ) 0inal&ente se
une el &odelo con el JSpinner.
El o$eto &odelo del JSpinner per&ite de0inir el +alor &1ni&o ) el +alor &23i&o( as1
co&o el inter+alo de au&ento de los +alores.

También podría gustarte