You are on page 1of 39

JOSE HERNANDEZ PANTA

I.E.S.T.P. HERMANOS CARCAMO - PAITA


No hemos sido los primeros, pero seremos los mejores.
(Steve Jobs)

I.E.S.T.P. HERMANOS CARCAMO DE PAITA

INTRODUCCIN
Las tecnologas mviles tienen mucho tiempo entre nosotros simplificando nuestras actividades
cotidianas facilitando nuestros trabajos, estudios o vida normal con sus innumerables aplicaciones
disponibles que se han ido incrementando con el tiempo.
Sin embargo, el desarrollo de la computacin como de la telefona celular han sido el parte aguas de la
evolucin de estas tecnologas que se despegaron con la incursin del Internet en la vida productiva y
econmica de la sociedad de hace ms de 20 aos. A pesar de que la telefona celular estaba en pleno
crecimiento su estructura era incipiente para soportar las aplicaciones bsicas del uso de Internet en las
dcadas de los noventas e inicio del 2000.
Una vez que el auge del internet y aplicaciones sobre la web alcanzo un nivel en que todo lo que se pudiera
pensar ya existira en ella, la telefona emprendi un camino sin retorno a superar la capacidad de
imaginacin de los usuarios, llevando a la palma de su mano, las aplicaciones propias de una computadora
persona a costos y velocidad que ningn modem de servicio local o banda ancha pudiera ofrecer.
Es por ello, que hablar de tecnologas mviles nos remonta inicialmente a lo simple que es un control
remoto, sin embargo, su capacidad lleva a centralizar todos los servicios en un dispositivo que aparte de
controlar un aparato, es capaz de estar conectado a miles de usuarios en el planeta usando una
infraestructura de comunicaciones poco imaginables para la corta historia de estos entre nosotros, es por
ello, que el estudio de la tecnologas mviles se ha convertido en una parte fundamental de la ingeniera
similar a una ciencia exacta que nos ayude comprender la situacin actual de las mismas y el futuro que
podemos a llegar a tener con el uso de esta tecnologa.
La telefona mvil, tambin llamada telefona celular, bsicamente est formada por dos grandes partes:
una red de comunicaciones (o red de telefona mvil) y los terminales (o telfonos mviles) que permiten
el acceso a dicha red.
El telfono mvil es un dispositivo inalmbrico electrnico que permite tener acceso a la red de telefona
celular o mvil. Se denomina celular debido a las antenas repetidoras que conforman la red, cada una de
las cuales es una clula, si bien existen redes telefnicas mviles satelitales. Su principal caracterstica es
su portabilidad, que permite comunicarse desde casi cualquier lugar.
Aunque su principal funcin es la comunicacin de voz, como el telfono convencional, su rpido
desarrollo ha incorporado otras funciones como son cmara fotogrfica, agenda, acceso a Internet,
reproduccin de vdeo e incluso GPS y reproductor mp3.

P.T. JOS MARIANO F.HERNNDEZ PANTA

Paita, 2013

I.E.S.T.P. HERMANOS CARCAMO DE PAITA

EJERCICIO GUIADO. JAVA: CUADROS DE VERIFICACIN


1. Realiza un nuevo proyecto.
2. En la ventana principal debes aadir lo siguiente:
a. Un botn Aceptar llamado btnAceptar.
b. Una etiqueta con borde llamada etiResultado.
3. Aade tambin tres cuadros de verificacin. Estos cuadros son objetos del tipo
JCheckBox.

4. Aade tres JCheckBox y cambia el texto de ellos, de forma que aparezca Perro, Gato
y Ratn.
5. Debe cambiar el nombre de cada uno de ellos. Se llamarn: chkPerro, chkGato, chkRaton.
6. La ventana tendr el siguiente aspecto cuando termine:

7. El programa debe funcionar de la siguiente forma:


Cuando el usuario pulse aceptar, en la etiqueta aparecer un mensaje indicando qu
animales han sido seleccionados. Para ello hay que programar el evento
actionPerformed del botn Aceptar. En ese evento aada el siguiente cdigo:
String mensaje="Animales elegidos: ";

P.T. JOS MARIANO F.HERNNDEZ PANTA

Paita, 2013

I.E.S.T.P. HERMANOS CARCAMO DE PAITA


if (chkPerro.isSelected()) {
mensaje=mensaje+"Perro ";
}
if (chkGato.isSelected()) {
mensaje=mensaje+"Gato ";
}
if (chkRaton.isSelected()) {
mensaje=mensaje+"Raton ";
}
etiResultado.setText(mensaje);

8. Observa el cdigo. En l se hace lo siguiente:


a. Se crea una variable de cadena llamada mensaje.
b. En esa variable se introduce el texto Animales elegidos:
c. Luego, compruebo si est seleccionada la casilla de verificacin chkPerro. Si es
as concateno a la cadena mensaje la palabra Perro.
d. Luego compruebo si est seleccionada la casilla de verificacin chkGato y hago lo
mismo.
e. Lo mismo con la casilla chkRaton.
f. Finalmente presento la cadena mensaje en la etiqueta etiResultado.
9. Observa el mtodo isSelected() propio de las casillas de verificacin, permiten saber si
una casilla est activada o no.
10. Ejecute el programa. Seleccione por ejemplo las casillas Gato y Ratn. Al pulsar Aceptar
el resultado debe ser el siguiente:

CONCLUSIN
Los cuadros de verificacin (JCheckBox) se usan cuando quieres seleccionar varias
opciones.

P.T. JOS MARIANO F.HERNNDEZ PANTA

Paita, 2013

I.E.S.T.P. HERMANOS CARCAMO DE PAITA


EJERCICIO GUIADO. JAVA: BOTONES DE OPCIN
1. Realiza un nuevo proyecto.
2. En la ventana principal debes aadir lo siguiente:
a. Un botn Aceptar llamado btnAceptar.
b. Una etiqueta con borde llamada etiResultado.
3. Aade un panel. Un panel es una zona rectangular que puede contener elementos
(botones, etiquetas, etc) La forma de poner un panel es a travs del objeto JPanel.

4. Una vez aadido el panel en el JFrame, le pondremos un borde para poder localizarlo
fcilmente. Debes hacer lo siguiente:
a. Selecciona el panel que has aadido.
b. Activa la propiedad Border (botn con tres puntos)
c. Busca el tipo de borde llamado TitledBorder (borde con ttulo) y pon el ttulo
colores.

P.T. JOS MARIANO F.HERNNDEZ PANTA

Paita, 2013

I.E.S.T.P. HERMANOS CARCAMO DE PAITA


5. Tu ventana debe quedar ms o menos as:

6. Ahora debes aadir tres botones de opcin (botones de radio) dentro del panel. Estos
botones son objetos del tipo JRadioButton.

7. Aade tres JRadioButton y cambia el texto de ellos, de forma que aparezca Rojo, Verde
y Azul.
8. Debe cambiar el nombre de cada uno de ellos. Se llamarn: optRojo, optVerde, optAzul.
9. La ventana tendr el siguiente aspecto cuando termine:

10. Si ejecuta el programa, observar que pueden seleccionarse varios colores a la vez. Esto
no es interesante, ya que los botones de opcin se usan para activar solo una opcin entre
varias.
P.T. JOS MARIANO F.HERNNDEZ PANTA

Paita, 2013

I.E.S.T.P. HERMANOS CARCAMO DE PAITA


11. Hay que hacer que solo un botn de opcin pueda estar seleccionado a la vez. Para ello,
debe aadir un nuevo objeto. Realice los siguientes pasos:
a. Aada un objeto del tipo ButtonGroup al formulario. Atencin! Este objeto es
invisible, y no se ver en el formulario, sin embargo, lo podris ver en el Inspector,
en la parte de Otros Componentes:

b. Tienes que darle un nombre al ButtonGroup. El nombre ser grupoColores.


c. Ahora, hay que conseguir que los tres botones pertenezcan al mismo grupo. Es
decir, que pertenezcan al grupo grupoColores.
d. Selecciona el botn de opcin optRojo y cambia su propiedad buttonGroup,
indicando que pertenece al grupo colores (observa la imagen):

P.T. JOS MARIANO F.HERNNDEZ PANTA

Paita, 2013

I.E.S.T.P. HERMANOS CARCAMO DE PAITA

e. Haz lo mismo con los botones optVerde y optAzul.


12. Acabas de asociar los tres botones de opcin a un mismo grupo. Esto produce que solo
una de las tres opciones pueda estar activada. Prubelo ejecutando el programa.
13. Ahora interesa que la opcin Rojo salga activada desde el principio. Una forma de hacer
esto es programando en el Constructor lo siguiente:
optRojo.setSelected(true);
El mtodo setSelected hace que se pueda activar o desactivar un botn de opcin.
Prueba el programa. Observa como la opcin Rojo est activada inicialmente.
14. El programa no est terminado an. Interesa que cuando el usuario pulse el botn
Aceptar, en la etiqueta aparezca el color elegido. Para ello, en el actionPerformed del
botn Aceptar programe lo siguiente:
String mensaje="Color elegido: ";
if (optRojo.isSelected()) {
mensaje=mensaje+"Rojo";
} else if (optVerde.isSelected()) {
mensaje=mensaje+"Verde";
} else if (optAzul.isSelected()) {
mensaje=mensaje+"Azul";
}
etiResultado.setText(mensaje);
15. Observa el cdigo. En l se hace lo siguiente:
a. Se crea una variable de cadena llamada mensaje.
b. En esa variable se introduce el texto Color elegido:
P.T. JOS MARIANO F.HERNNDEZ PANTA

Paita, 2013

I.E.S.T.P. HERMANOS CARCAMO DE PAITA


c. Luego se comprueba que opcin est seleccionada, usando el mtodo isSelected
de los botones de opcin. Este mtodo te dice si un botn est seleccionado o no.
d. Segn la opcin que est seleccionada, se aade un texto u otro a la cadena
mensaje.
e. Finalmente se muestra la cadena mensaje en la etiqueta etiResultado.
16. Ejecute el programa. Seleccione por ejemplo la Verde. Al pulsar Aceptar el resultado debe
ser el siguiente:

CONCLUSIN
Los botones de opcin, tambin llamados botones de radio (JRadioButton) se usan
cuando quieres que el usuario pueda elegir una opcin de entre varias.
Es interesante que los botones de radio aparezcan dentro de un panel JPanel. Se
recomienda colocar un borde al panel.
Es totalmente necesario aadir un objeto del tipo ButtonGroup, y hacer que los botones
de radio pertenezcan a dicho grupo. En caso contrario, ser posible activar varios
botones de opcin a la vez.
EJERCICIO GUIADO. JAVA: CUADROS DE LISTA
1. Realiza un nuevo proyecto.
2. En la ventana principal debes aadir lo siguiente:
a. Un botn Aceptar llamado btnAceptar.
b. Una etiqueta con borde llamada etiResultado.

P.T. JOS MARIANO F.HERNNDEZ PANTA

Paita, 2013

I.E.S.T.P. HERMANOS CARCAMO DE PAITA


3. Aade un cuadro de lista. Los cuadros de listas son objetos JList.

4. Cmbiale el nombre al JList. Ten cuidado, ya que en los JList aparecen siempre dentro
de otro objeto llamado jScrollPane. Si miras en el Inspector, vers que al pulsar en el
botn + del jScrollPane aparecer tu JList:

5. Aprovecha para cambiarle el nombre al JList. El nuevo nombre ser lstColores.


6. Si te fijas en el JList, consiste en un cuadro que contiene una serie de Items. Estos
elementos pueden ser cambiados a travs de la propiedad Model del JList.
7. Busca la propiedad Model y haz clic en el botn de los tres puntos. Aparecer un cuadro
de dilogo parecido al siguiente. Solo tienes que seleccionar los elementos que quieras y
pulsar el botn Borrar (Remove) para eliminarlos de la lista.

P.T. JOS MARIANO F.HERNNDEZ PANTA

Paita, 2013

I.E.S.T.P. HERMANOS CARCAMO DE PAITA


8. Puedes aadir elementos escribindolos en el cuadro Artculo y luego pulsando el botn
Aadir (Add).

9. Debes hacer que la lista sea la siguiente:


Rojo
Verde
Azul
10. Ahora programaremos el actionPerformed del botn Aceptar. Debes introducir el siguiente
cdigo:
String mensaje;
mensaje="El color seleccionado es: "+lstColores.getSelectedValue().toString();
etiResultado.setText(mensaje);

11. Observa el cdigo:


a. Se crea una variable de cadena llamada mensaje.
b. Y dentro de esta variable se introduce una concatenacin de cadenas.
c. Observa la parte: lstColores.getSelectedValue(), esta parte devuelve el
valor seleccionado de la lista.
d. Hay que tener en cuenta que este valor no es una cadena, por eso hay que
convertirla a cadena aadiendo .toString().
e. De esta manera puedes extraer el elemento seleccionado de un cuadro de lista.
f. Luego simplemente ponemos la cadena mensaje dentro de la etiqueta.
12. Ejecuta el programa y observa su funcionamiento. Por ejemplo, si seleccionas el color
verde y pulsas aceptar el resultado ser el siguiente:

P.T. JOS MARIANO F.HERNNDEZ PANTA

Paita, 2013

I.E.S.T.P. HERMANOS CARCAMO DE PAITA

13. Vamos a mejorar el programa. Puede suceder que el usuario no seleccione ningn valor
del cuadro de lista, y sera interesante en este caso que el programa avisara de ello.
Cambie el cdigo del botn Aceptar por este otro cdigo:
String mensaje;
if (lstColores.getSelectedIndex()==-1) {
mensaje="No hay un color seleccionado.";
} else {
mensaje="El color seleccionado es: "+lstColores.getSelectedValue().toString();
}
etiResultado.setText(mensaje);

14. Observa el cdigo:


a. El mtodo getSelectedIndex me dice el ndice del elemento que est seleccionado.
b. Por ejemplo, si est seleccionado el primero el ndice es 0, si est seleccionado el
segundo el ndice es 1, etc.
c. Si este mtodo devuelve -1, entonces es seal de que no hay ningn elemento
seleccionado.
d. Aprovecho esto para mostrar un mensaje indicando lo sucedido.
15. Si ejecuta el programa y pulsa el botn Aceptar sin seleccionar nada el resultado debera
ser el siguiente:

P.T. JOS MARIANO F.HERNNDEZ PANTA

Paita, 2013

I.E.S.T.P. HERMANOS CARCAMO DE PAITA

16. Se podra haber prescindido del botn aceptar si el cdigo anterior se hubiera puesto en
el evento mouseClicked del cuadro de lista en vez de en el actionPerformed del botn
Aceptar. En este caso, cada vez que se seleccionara un elemento de la lista,
automticamente aparecera el mensaje en la etiqueta.
Se anima a que realice esta modificacin.
CONCLUSIN
El objeto JList permite crear cuadros de lista. Estos objetos contienen una serie de
elementos que pueden ser seleccionados.
A travs del mtodo getSelectedValue se puede obtener el elemento que est
seleccionado. (Recuerda convertirlo a cadena con toString)
A travs del mtodo getSelectedIndex se puede saber la posicin del elemento
seleccionado. Si este ndice es -1, entonces sabremos que no hay ningn elemento
seleccionado.

P.T. JOS MARIANO F.HERNNDEZ PANTA

Paita, 2013

I.E.S.T.P. HERMANOS CARCAMO DE PAITA

EJERCICIO GUIADO. JAVA: CUADROS COMBINADOS


1. Realiza un nuevo proyecto.
2. En la ventana principal debes aadir lo siguiente:
a. Una etiqueta con borde llamada etiResultado.
3. Aade un cuadro combinado (combo). Los cuadros combinados son objetos del tipo
JComboBox. Bsicamente, un combo es una lista desplegable.

4. Cmbiale el nombre al JComboBox. El nombre ser cboColores. Tu programa debe tener


ms o menos este aspecto.

5. Los elementos del cboColores pueden ser cambiados a travs de la propiedad Model.
Selecciona el combo y activa la propiedad Model (el botoncito con los tres puntos)
Aparecer lo siguiente:

P.T. JOS MARIANO F.HERNNDEZ PANTA

Paita, 2013

I.E.S.T.P. HERMANOS CARCAMO DE PAITA

6. Al igual que pasaba con los cuadros de lista, se pueden eliminar los elementos que
contiene el combo y aadir elementos propios. Use los botones Aadir y Eliminar para
aadir la siguiente lista de elementos:
Rojo
Verde
Azul
7. Ejecuta el programa y observa el funcionamiento del desplegable...

8. Vamos a hacer que cuando se elija un elemento del desplegable, en la etiqueta aparezca
un mensaje indicando el color elegido.
Para ello, debes programar el evento actionPerformed del combo y aadir el siguiente
cdigo:
P.T. JOS MARIANO F.HERNNDEZ PANTA

Paita, 2013

I.E.S.T.P. HERMANOS CARCAMO DE PAITA

String mensaje="El color elegido es ";


mensaje=mensaje+cboColores.getSelectedItem().toString();
etiResultado.setText(mensaje);

9. Este cdigo hace lo siguiente:


a. Crea una variable de cadena.
b. Concatena dentro de ella el mensaje El color elegido es con el color
seleccionado.
c. Observa el mtodo getSelectedItem, se usa para saber el elemento seleccionado
del combo. Es necesario convertirlo a texto con toString.
d. Finalmente se coloca el mensaje en la etiqueta.
10. Ejecuta el programa y comprueba su funcionamiento. Por ejemplo, si elegimos el color
verde, el aspecto del programa ser el siguiente:

11. Los cuadros combinados pueden funcionar tambin como cuadros de texto. Es decir,
pueden permitir que se escriba texto dentro de ellos. Para hacer esto, basta con cambiar
su propiedad editable y activarla.

P.T. JOS MARIANO F.HERNNDEZ PANTA

Paita, 2013

I.E.S.T.P. HERMANOS CARCAMO DE PAITA

12. Ejecuta el programa y observa como se puede escribir dentro del combo. Al pulsar Enter,
el programa funciona igualmente con el texto escrito.

Se escribe aqu y
se pulsa enter

CONCLUSIN
Los combos son listas desplegables donde se puede elegir una de las opciones
propuestas.
Los combos pueden funcionar tambin como cuadros de textos, si se activa la opcin
editable.
A travs del mtodo getSelectedItem se puede extraer la opcin seleccionada o el texto
escrito en el combo.

P.T. JOS MARIANO F.HERNNDEZ PANTA

Paita, 2013

I.E.S.T.P. HERMANOS CARCAMO DE PAITA

EJERCICIO GUIADO. JAVA: MODELOS DE CUADRO DE LISTA


1. Realiza un nuevo proyecto.
2. En la ventana principal debes aadir lo siguiente:
a. Una etiqueta con borde llamada etiResultado.
3. Aade un cuadro de lista al formulario (JList).

4. Borra todo el contenido de la lista (propiedad model) y cmbiale el nombre a la lista. La


lista se llamar lstNombres. Recuerda que las listas aparecen dentro de un objeto del tipo
JScrollPane.

P.T. JOS MARIANO F.HERNNDEZ PANTA

Paita, 2013

I.E.S.T.P. HERMANOS CARCAMO DE PAITA

5. Aade dos botones al formulario. Uno de ellos tendr el texto Curso 1 y se llamar
btnCurso1 y el otro tendr el texto Curso 2 y se llamar btnCurso2.

6. En el evento actionPerformed del botn Curso 1 programa lo siguiente:


DefaultListModel modelo = new DefaultListModel();
modelo.addElement("Juan");
modelo.addElement("Mara");
modelo.addElement("Luis");
lstNombres.setModel(modelo);

7. En el evento actionPerformed del botn Curso 2 programa lo siguiente:


DefaultListModel modelo = new DefaultListModel();
modelo.addElement("Ana");
modelo.addElement("Marta");
modelo.addElement("Jose");
lstNombres.setModel(modelo);

8. Explicacin de los cdigos anteriores:


a. Lo que hace cada botn es rellenar el cuadro de lista con una serie de nombres.
En el caso del botn Curso 1, la lista se rellena con los nombres Juan, Mara y
Luis, mientras que en el caso del botn Curso 2, la lista se rellena con los
nombres Ana, Marta y Jose.
b. El contenido de un cuadro de lista es lo que se denomina un modelo. El modelo
es un objeto que contiene el listado de elementos de la lista.

P.T. JOS MARIANO F.HERNNDEZ PANTA

Paita, 2013

I.E.S.T.P. HERMANOS CARCAMO DE PAITA


c. Los modelos de las listas son objetos del tipo DefaultListModel.
d. Lo que hace el programa es crear un modelo. Luego rellena el modelo con
datos, y finalmente asocia el modelo al cuadro de lista. Veamos como se hace
todo esto.
e. Primero se crea el modelo, a travs de la siguiente instruccin (ser necesario
aadir el import correspondiente, atento a la bombillita):
DefaultListModel modelo = new DefaultListModel();
f.

El modelo tiene un mtodo llamado addElement que permite introducir datos


dentro de l. As pues usamos este mtodo para aadir los datos al modelo.

modelo.addElement("Ana");
modelo.addElement("Marta");
modelo.addElement("Jose");
g. Finalmente asociamos el modelo creado al cuadro de lista de la siguiente
forma:
lstNombres.setModel(modelo);
h. As pues, aqu tienes una forma de cambiar el contenido de un cuadro de lista
desde el propio programa.
9. Prueba a ejecutar el programa. Observa como cuando pulsas cada botn cambia el
contenido de la lista:

Click y cambia el
listado.

P.T. JOS MARIANO F.HERNNDEZ PANTA

Paita, 2013

I.E.S.T.P. HERMANOS CARCAMO DE PAITA


10. Ahora aade el siguiente cdigo al evento mouseClicked del cuadro de lista:
etiResultado.setText(lstNombres.getSelectedValue().toString());

Esta instruccin hace que al seleccionar un elemento del cuadro de lista ste aparezca en
la etiqueta etiResultado. Recuerda que el mtodo getSelectedValue permite recoger el
elemento seleccionado (hay que convertirlo a cadena con toString)
11. Ejecuta el programa:

Click y aparece el
elemento
seleccionado en la
etiqueta.

12. Una propuesta. Aada un botn Vaciar llamado btnVaciar. Este botn vaciar el
contenido de la lista. Para esto lo nico que tiene que hacer es crear un modelo y, sin
introducir ningn valor en l, asociarlo al cuadro de lista.
CONCLUSIN
Un cuadro de lista es un objeto que contiene a su vez otro objeto denominado modelo.
El objeto modelo es el que realmente contiene los datos de la lista.
Cuadro de lista  Modelo  Datos
Se puede crear un modelo y luego introducir datos en l. Luego se puede asociar ese
modelo a la lista. De esta manera se puede cambiar el contenido de la lista en cualquier
momento.

P.T. JOS MARIANO F.HERNNDEZ PANTA

Paita, 2013

I.E.S.T.P. HERMANOS CARCAMO DE PAITA

EJERCICIO GUIADO. JAVA: MODELOS DE CUADRO DE LISTA


1. Realiza un nuevo proyecto.
2. En la ventana principal debes aadir lo siguiente:
a.
b.
c.
d.

Un combo llamado cboNumeros.


Un botn Pares llamado btnPares.
Un botn Impares llamado btnImpares.
Una etiqueta con borde llamada etiResultado.

3. Elimina todos los elementos que contenga el combo. Recuerda, debes usar la propiedad
model del combo para cambiar sus elementos.
4. Despus de haber hecho todo esto, tu ventana debe quedar ms o menos as:

5. En el evento actionPerformed del botn Pares, programa lo siguiente:


int i;
DefaultComboBoxModel modelo = new DefaultComboBoxModel();
for (i=0;i<10;i+=2) {
modelo.addElement("N "+i);
}
cboNumeros.setModel(modelo);

6. Observa lo que hace este cdigo:


a. Crea un objeto modelo para el combo.

P.T. JOS MARIANO F.HERNNDEZ PANTA

Paita, 2013

I.E.S.T.P. HERMANOS CARCAMO DE PAITA


Al igual que pasa con los cuadros de lista, los combos tienen un objeto modelo
que es el que realmente contiene los datos. En el caso de los combos, para crear
un objeto modelo se usar esta instruccin:
DefaultComboBoxModel modelo = new DefaultComboBoxModel();

b. A continuacin, se usa el objeto modelo creado y se rellena de datos.


Concretamente, se rellena con los nmeros pares comprendidos entre 0 y 10.
c. Observa el uso de la propiedad addElement para aadir un elemento al modelo
del combo.
d. Se ha usado un bucle for para hacer la introduccin de datos en el modelo ms
fcil.
e. Finalmente, se asocia el modelo al combo a travs de la siguiente lnea, con lo que
el combo aparece relleno con los elementos del modelo:
cboNumeros.setModel(modelo);

7. Ejecuta el programa y observa el funcionamiento del botn Pares.

Se pulsa y se rellena
automticamente

8. El botn Impares es similar. Programa su actionPerformed como sigue:


int i;
DefaultComboBoxModel modelo = new DefaultComboBoxModel();
for (i=1;i<10;i+=2) {
modelo.addElement("N "+i);
}
cboNumeros.setModel(modelo);

P.T. JOS MARIANO F.HERNNDEZ PANTA

Paita, 2013

I.E.S.T.P. HERMANOS CARCAMO DE PAITA

9. La nica diferencia de este cdigo es el for, que est diseado para que se introduzcan
los nmeros impares comprendidos entre 0 y 10 dentro del modelo.
10. Finalmente se programar el actionPerformed del combo para que al seleccionar un
elemento este aparezca en la etiqueta. Esto se hace con una simple instruccin:
etiResultado.setText(cboNumeros.getSelectedItem().toString());

Recuerda el uso de getSelectedItem() para recoger el elemento seleccionado, y el uso de


toString() para convertirlo a texto.
11. Prueba el programa. Prueba los botones Pares e Impares y prueba el combo.

12. Sera interesante aadir un botn Vaciar llamado btnVaciar que vaciara el contenido del
combo. Esto se hara simplemente creando un modelo vaco y asignarlo al combo. Se
anima al alumno a que realice esta mejora.
CONCLUSIN
Un combo, al igual que los cuadros de lista, es un objeto que contiene a su vez otro objeto
denominado modelo.
El objeto modelo es el que realmente contiene los datos del combo.
Combo  Modelo  Datos
Se puede crear un modelo y luego introducir datos en l. Luego se puede asociar ese
modelo al combo. De esta manera se puede cambiar el contenido del combo en cualquier
momento.

P.T. JOS MARIANO F.HERNNDEZ PANTA

Paita, 2013

I.E.S.T.P. HERMANOS CARCAMO DE PAITA


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.
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 botones
triangulares o porque se escribi dentro) aparezca el valor correspondiente dentro de la
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());

P.T. JOS MARIANO F.HERNNDEZ PANTA

Paita, 2013

I.E.S.T.P. HERMANOS CARCAMO DE PAITA

6. 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. (Es
muy parecido a los deslizadores)
Debes tener en cuenta que el valor devuelto no es un nmero ni una cadena, as que en
el ejemplo se ha usado el mtodo toString() para convertirlo a una cadena.
7. Prueba el programa y observa su funcionamiento:
El usuario modifica el
valor del JSpinner...
Y aqu aparece el valor
seleccionado.

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 que tenga
unos valores concretos? La respuesta es s. Veamos como hacerlo.
9. Entra dentro del cdigo del programa y, dentro del constructor, aade este cdigo debajo
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 contiene otro
objeto modelo, y es el objeto modelo el que contiene los nmeros visualizados
en el JSpinner.
b. En el cdigo anterior se crea un modelo para el JSpinner, se definen los valores
que contendr, y luego se asigna al JSpinner. Estudiemos las lneas del cdigo.
c. La primera lnea crea un modelo llamado nm. Los modelos de los JSpinner son
del tipo SpinnerNumberModel. Necesitars incluir el import correspondiente
(atento a la bombilla)
P.T. JOS MARIANO F.HERNNDEZ PANTA

Paita, 2013

I.E.S.T.P. HERMANOS CARCAMO DE PAITA

d. En la segunda lnea se define como valor mximo del modelo el 10, a travs de un
mtodo llamado setMaximum.
e. En la tercera lnea se define como valor mnimo del modelo el 0, a travs de un
mtodo llamado setMinimum.
f.

Finalmente se asigna el modelo creado al JSpinner.

g. Este cdigo, en definitiva, har que el JSpinner muestre los valores comprendidos
entre 0 y 10.
11. Prueba el programa y observa los valores que puede tomar el JSpinner.

Ahora los valores estn


comprendidos entre 0 y
10

12. Vamos a aadir otra mejora. Cambie el cdigo del constructor por este otro. (Observa que
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 de cambio
del JSPinner. Dicho de otra forma, esta lnea hace que los valores del JSpinner salten de
2 en 2.
14. Ejecuta el programa de nuevo y observa cmo cambian los valores del JSpinner.
15. El modelo del JSpinner tiene tambin un mtodo llamado setValue que permite asignar
un valor inicial al modelo. Pruebe a usar este mtodo para hacer que el JSpinner muestre
desde el principio el valor 4.
CONCLUSIN
P.T. JOS MARIANO F.HERNNDEZ PANTA

Paita, 2013

I.E.S.T.P. HERMANOS CARCAMO DE PAITA


Los JSpinners son objetos que permiten seleccionar un nmero, ya sea escribindolo en
el recuadro, o bien a travs de dos botones triangulares que permiten aumentar o disminuir
el valor actual.
Los JSpinners son objetos con modelo. Es decir, este objeto contiene a su vez otro
objeto modelo que es el que realmente contiene los datos.
Datos  Modelo  JSpinner
Para definir el contenido del JSpinner es necesario crear un modelo del tipo
SpinnerNumberModel. Se le asigna al modelo los nmeros deseados, y finalmente se une
el modelo con el JSpinner.
El objeto modelo del JSpinner permite definir el valor mnimo y el valor mximo, as como
el intervalo de aumento de los valores.

EJERCICIO GUIADO. JAVA: SCROLLBARS


Introduccin a las JscrollBars (Barras de desplazamiento)
La clase JScrollBar permite crear barras de desplazamiento independientes, como la que se
muestra a continuacin:

La barra tiene un valor mnimo, que se consigue haciendo que el recuadro de la barra de
desplazamiento est pegado a la parte izquierda.

Valor mnimo

Cuando se pulsa algunos de los botones de la barra de desplazamiento, el valor de la barra se


incrementa / decrementa poco a poco. A este incremento / decremento lo llamaremos
incremento unitario.

Decrementa el valor poco a


poco (incremento unitario)

Incrementa el valor poco a poco


(incremento unitario)

P.T. JOS MARIANO F.HERNNDEZ PANTA

Paita, 2013

I.E.S.T.P. HERMANOS CARCAMO DE PAITA


Cuando se pulsa directamente sobre la barra, el valor de la barra se incrementa / decrementa en
mayor cantidad. A este incremento / decremento lo llamaremos incremento en bloque.

Al pulsar directamente sobre la barra


se decrementa en mayor cantidad
(incremento en bloque)

Al pulsar directamente sobre la


barra se incremente en mayor
cantidad (incremento en bloque)

Ejercicio guiado
1. Para comprender mejor el funcionamiento de las barras de desplazamiento se crear un
proyecto nuevo.
2. Aade en el proyecto una barra de desplazamiento (JScrollBar) y llmala desValor.

3. La barra de desplazamiento aparecer en vertical. Use la propiedad de la barra llamada


Orientation para hacer que la barra aparezca en posicin horizontal.

4. Aade tambin una etiqueta con borde y llmala etiValor.


5. La ventana debe quedar ms o menos as:

P.T. JOS MARIANO F.HERNNDEZ PANTA

Paita, 2013

I.E.S.T.P. HERMANOS CARCAMO DE PAITA

6. Interesa que cuando el usuario cambie de alguna manera la barra de desplazamiento, en


la etiqueta aparezca el valor de la barra.
Para ello, se debe programar el evento AdjustmentValueChanged de la barra de
desplazamiento.
En este evento programa lo siguiente:
etiValor.setText("El valor es: "+desValor.getValue());

7. Como ves, se coloca en la etiqueta el valor de la barra. El valor de la barra se obtiene con
el mtodo getValue. Ejecuta el programa para ver su funcionamiento.
Pulsa aqu y observa
como el valor cambia
poco a poco

Pero si pulsas aqu el


valor cambia en mayor
cantidad

8. Sigamos estudiando el programa. Se pide que cambies las siguientes propiedades de tu


barra:
Minimum Permite asignar el valor mnimo de la barra. Escribe un 50
Maximum Permite asignar el valor mximo de la barra. Escribe un 150

P.T. JOS MARIANO F.HERNNDEZ PANTA

Paita, 2013

I.E.S.T.P. HERMANOS CARCAMO DE PAITA

UnitIncrement Permite cambiar el incremento unitario. Escribe un 2.

BlockIncrement Permite cambiar el incremento en bloque. Escribe un 20.

VisibleAmount Permite cambiar el ancho del recuadro de la barra. Escribe un 5.

9. Ejecuta ahora el programa y comprueba su funcionamiento:


Si pulsas aqu, el valor
se incrementa de 2 en
2, ya que el
incremento unitario se
configur en 2.
Si pulsas aqu, el valor
se incrementa de 20
en 20, ya que el
incremento en bloque
es de 20.
Si llevas la barra de
desplazamiento al mnimo, su
valor ser de 50, ya que se
configur as con la propiedad
minimum

P.T. JOS MARIANO F.HERNNDEZ PANTA

Paita, 2013

I.E.S.T.P. HERMANOS CARCAMO DE PAITA

Observa lo que sucede cuando llevas


la barra de desplazamiento al mximo:
aparece un valor de 145, cuando el
valor mximo que asignamos fue de
150 por qu?

10. Tal como se ha indicado anteriormente, pasa algo raro con la barra de desplazamiento
cuando esta est al mximo. Se esperaba que alcanzara el valor 150, y sin embargo, el
valor mximo alcanzado fue de 145. La explicacin es la siguiente:
Valor mximo (150)

***

Valor de la barra (145) **

* Nuestra barra tiene un valor mximo de 150.


** Sin embargo, el valor de la barra viene indicado por el lado izquierdo del recuadro
interno.
*** Como el recuadro interno tiene un ancho definido a travs de la propiedad
VisibleAmount, el valor mximo que la barra puede alcanzar es de:
Valor = ValorMximo Ancho del recuadro.
Es decir,
Valor alcanzable = 150 5 = 145
11. A travs del mtodo setValue de la barra de desplazamiento se puede asignar un valor
inicial a la barra. Programe en el constructor de su programa lo necesario para que la
barra de desplazamiento tenga un valor de 70 al empezar el programa.

P.T. JOS MARIANO F.HERNNDEZ PANTA

Paita, 2013

I.E.S.T.P. HERMANOS CARCAMO DE PAITA

CONCLUSIN
Las JScrollBars son barras de desplazamiento independientes. Al igual que los JSliders,
las JScrollBars tienen un valor concreto, que puede ser obtenido a travs del mtodo
getValue.
Entre las caractersticas programables de una barra de desplazamiento, tenemos las
siguientes:
- Valor mnimo (propiedad Minimum)
- Valor mximo (propiedad Maximum)
- Incremento unitario (propiedad UnitIncrement)
- Incremento en bloque (propiedad BlockIncrement)
- Tamao del recuadro de la barra (propiedad VisibleAmount)

EJERCICIO GUIADO. JAVA: BARRA DE MENUS


Barras de Mens
La barra de mens nos permitir acceder a las opciones ms importantes del programa. Todo
programa de gran envergadura suele tener una barra de mens.

Ejercicio guiado
1. Veamos como aadir una barra de mens a nuestras aplicaciones. En primer lugar, crea
un proyecto con el NetBeans.
2. Aade a tu ventana un objeto JMenuBar
3. En la parte superior de tu ventana aparecer esto:

4. En el inspector (parte inferior izquierda) observars


como aparece un objeto JMenuBar, y, dentro de l, un
objeto del tipo JMenu. Los objetos JMenu representan
las opciones principales contenidas dentro de la barra
de mens.
P.T. JOS MARIANO F.HERNNDEZ PANTA

Paita, 2013

I.E.S.T.P. HERMANOS CARCAMO DE PAITA

5. Aprovecha el Inspector para cambiar el nombre al


objeto JMenuBar. Llmalo barraMenus.
6. Cambia tambin el nombre al objeto JMenu. Asgnale
el nombre menuArchivo. El Inspector tendr el
siguiente aspecto:
7. Ahora, la nica opcin de la barra de mens muestra el texto Menu. Esto se puede
cambiar seleccionndola y cambiando su propiedad text. Asgnale el texto Archivo a la
opcin del men:

8. Ahora el aspecto de la barra de mens ser el siguiente:

9. Puedes aadir ms opciones principales a la barra de mens haciendo clic con el derecho
sobre el objeto de la barra de mens y activando la opcin Aadir JMenu.

10. Aada dos opciones ms a la barra de mens. El inspector debe tener ahora el siguiente
aspecto:
P.T. JOS MARIANO F.HERNNDEZ PANTA

Paita, 2013

I.E.S.T.P. HERMANOS CARCAMO DE PAITA

11. Y la barra de mens presentar este otro aspecto:

12. Cambia los nombres de las dos nuevas opciones. Sus nombres sern: menuEdicion y
menuInsertar.

13. Cambia los textos de ambas opciones. Sus textos sern: Edicin e Insertar.

14. Ya tenemos creada la barra de mens (JMenuBar) con sus opciones principales (JMenu).
Ahora se tendrn que definir las opciones contenidas en cada opcin principal. Por
ejemplo, crearemos las opciones contenidas en el men Archivo.
15. Haz clic con el botn derecho sobre el objeto menuArchivo y activa la opcin Aadir
JMenuItem.

P.T. JOS MARIANO F.HERNNDEZ PANTA

Paita, 2013

I.E.S.T.P. HERMANOS CARCAMO DE PAITA

Los JMenuItem son objetos que representan las opciones contenidas en los mens
desplegables de la barra de mens.
16. Aade un JMenuItem ms al menuArchivo y luego cambia el nombre a ambos. Sus
nombres sern menuItemAbrir y menuItemGuardar. El aspecto del Inspector ser el
siguiente:

17. Usa ahora la propiedad Text de ambos JMenuItem para asignarles un texto. El primero
tendr el texto Abrir y el segundo el texto Guardar.
18. Ya podemos ejecutar el programa para ver que es lo que se ha conseguido. Use el men:

Observa como la opcin Archivo se despliega mostrando dos submens: Abrir y Guardar.
19. Seguiremos aadiendo elementos al men. Ahora haga clic con el derecho sobre el
elemento menuArchivo y aada un JSeparator.

P.T. JOS MARIANO F.HERNNDEZ PANTA

Paita, 2013

I.E.S.T.P. HERMANOS CARCAMO DE PAITA

Los JSeparator son objetos que definen una separacin entre las opciones de un men. Cmbiele
el nombre y llmelo separador1:
20. Aada un nuevo JMenuItem al men Archivo y ponle el nombre menuSalir. El texto de
esta opcin ser Salir (use su propiedad text) El aspecto del Inspector ser el siguiente:

21. Ejecuta el programa y observa el contenido de la opcin Archivo del men:

Observa el efecto que produce el separador.


22. Un JMenu representa las opciones principales de la barra de mens. A su vez, un JMenu
contiene JMenuItem, que son las opciones contenidas en cada opcin principal, y que se
ven cuando se despliega el men.

P.T. JOS MARIANO F.HERNNDEZ PANTA

Paita, 2013

I.E.S.T.P. HERMANOS CARCAMO DE PAITA


Sin embargo, un JMenu puede contener a otros JMenu, que a su vez contendrn varios
JMenuItem. Usando el botn derecho del ratn y la opcin Aadir, aade un JMenu
dentro de menuEdicion:

23. Llama al nuevo JMenu menuColores y asignale el texto Colores.

24. Ahora aade dentro del menuColores tres JMenuItem llamados respectivamente:
menuItemRojo, menuItemVerde, menuItemAzul. Sus textos sern Rojo, Verde y Azul.

P.T. JOS MARIANO F.HERNNDEZ PANTA

Paita, 2013

I.E.S.T.P. HERMANOS CARCAMO DE PAITA


25. Ejecuta el programa y observa como ha quedado el men Edicin:

La opcin Edicin (JMenu) contiene una opcin Colores (JMenu) que a su vez contiene
las opciones Rojo, Verde y Azul (JMenuItems)
26. De nada sirve crear un men si luego este no reacciona a las pulsaciones del ratn. Cada
objeto del men tiene un evento ActionPerformed que permite programar lo que debe
suceder cuando se active dicha opcin del men.
27. Marque en el inspector el objeto menuItemRojo y acceda a su evento ActionPerformed.
Dentro de l programe este sencillo cdigo:
this.getContentPane().setBackground(Color.RED);
Este cdigo cambia el color de fondo de la ventana a rojo.
28. Compruebe el funcionamiento de la opcin Rojo del men ejecutando el programa.
29. Programa t mismo las opciones Verde y Azul.

CONCLUSIN
Las barras de mens son un conjunto de objetos de distinto tipo que se contienen unos a
los otros:
La barra en s est representada por un objeto del tipo JMenuBar.
La barra contiene opciones principales, representadas por objetos JMenu.
Las opciones principales contienen opciones que aparecen al desplegarse el men. Esta
opciones son objetos del tipo JMenuItem.
Un JMenu tambin puede contener otros JMenu, que a su vez contendrn JMenuItems.
Tambin puede aadir separadores (JSeparator) que permiten visualizar mejor las
opciones dentro de un men.

P.T. JOS MARIANO F.HERNNDEZ PANTA

Paita, 2013