8/3/2019 PRACTICAS DE COMPONENTES
1/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
PROGRAMACION ORIENTADA A OBJETO 1
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 tipoJCheckBox.
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:
8/3/2019 PRACTICAS DE COMPONENTES
2/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
PROGRAMACION ORIENTADA A OBJETO 2
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 eventoactionPerformeddel botn Aceptar. En ese evento aada el siguiente cdigo:
String mensaje="Animales elegidos: ";
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 esas 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 siuna 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:
8/3/2019 PRACTICAS DE COMPONENTES
3/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
PROGRAMACION ORIENTADA A OBJETO 3
CONCLUSIN
Los cuadros de verificacin (JCheckBox) se usan cuando quieres seleccionar variasopciones.
8/3/2019 PRACTICAS DE COMPONENTES
4/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
PROGRAMACION ORIENTADA A OBJETO 4
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 localizarlofcilmente. Debes hacer lo siguiente:
c. Selecciona el panel que has aadido.d. Activa la propiedad Border (botn con tres puntos)e. Busca el tipo de borde llamado TitledBorder (borde con ttulo) y pon el ttulo colores.
8/3/2019 PRACTICAS DE COMPONENTES
5/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
PROGRAMACION ORIENTADA A OBJETO 5
5. Tu ventana debe quedar ms o menos as:
8/3/2019 PRACTICAS DE COMPONENTES
6/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
PROGRAMACION ORIENTADA A OBJETO 6
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 yAzul.
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 noes interesante, ya que los botones de opcin se usan para activar solo una opcin entrevarias.
8/3/2019 PRACTICAS DE COMPONENTES
7/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
PROGRAMACION ORIENTADA A OBJETO 7
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:
f. 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 deOtros Componentes:
g. Tienes que darle un nombre al ButtonGroup. El nombre ser grupoColores.h. Ahora, hay que conseguir que los tres botones pertenezcan al mismo grupo. Es decir,
que pertenezcan al grupo grupoColores.i. Selecciona el botn de opcin optRojo y cambia su propiedad buttonGroup, indicando
que pertenece al grupo colores (observa la imagen):
8/3/2019 PRACTICAS DE COMPONENTES
8/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
PROGRAMACION ORIENTADA A OBJETO 8
j. 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 unade 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, enla etiqueta aparezca el color elegido. Para ello, en el actionPerformeddel botn Aceptarprograme 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);
8/3/2019 PRACTICAS DE COMPONENTES
9/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
PROGRAMACION ORIENTADA A OBJETO 9
15. Observa el cdigo. En l se hace lo siguiente:
k. Se crea una variable de cadena llamada mensaje.
l. En esa variable se introduce el texto Color elegido: m. 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.n. Segn la opcin que est seleccionada, se aade un texto u otro a la cadena mensaje.o. Finalmente se muestra la cadena mensajeen la etiqueta etiResultado.
16. Ejecute el programa. Seleccione por ejemplo la Verde. Al pulsar Aceptar el resultado debe serel siguiente:
CONCLUSIN
Los botones de opcin, tambin llamados botones de radio (JRadioButton) se usan cuandoquieres 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 deradio pertenezcan a dicho grupo. En caso contrario, ser posible activar varios botones deopcin a la vez.
8/3/2019 PRACTICAS DE COMPONENTES
10/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
PROGRAMACION ORIENTADA A OBJETO 10
EJERCICIO GUIADO. JAVA: CUADROS DE LISTA
1. Realiza un nuevo proyecto.
2. En la ventana principal debes aadir lo siguiente:
p. Un botn Aceptar llamado btnAceptar.q. Una etiqueta con borde llamada etiResultado.
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 + deljScrollPane aparecer tu JList:
8/3/2019 PRACTICAS DE COMPONENTES
11/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
PROGRAMACION ORIENTADA A OBJETO 11
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 elementospueden 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 dedilogo parecido al siguiente. Solo tienes que seleccionar los elementos que quieras y pulsarel botn Borrar (Remove) para eliminarlos de la lista.
8. Puedes aadir elementos escribindolos en el cuadro Artculo y luego pulsando el botnAadir (Add).
9. Debes hacer que la lista sea la siguiente:
RojoVerdeAzul
10. Ahora programaremos el actionPerformeddel botn Aceptar. Debes introducir el siguientecdigo:
String mensaje;
mensaje="El color seleccionado es: "+lstColores.getSelectedValue().toString();
etiResultado.setText(mensaje);
8/3/2019 PRACTICAS DE COMPONENTES
12/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
PROGRAMACION ORIENTADA A OBJETO 12
11. Observa el cdigo:
r. Se crea una variable de cadena llamada mensaje.
s. Y dentro de esta variable se introduce una concatenacin de cadenas.t. Observa la parte: lstColores.getSelectedValue(), esta parte devuelve el valor
seleccionado de la lista.u. Hay que tener en cuenta que este valor no es una cadena, por eso hay que convertirla
a cadena aadiendo .toString().v. De esta manera puedes extraer el elemento seleccionado de un cuadro de lista.w. 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 ypulsas aceptar el resultado ser el siguiente:
13. Vamos a mejorar el programa. Puede suceder que el usuario no seleccione ningn valor delcuadro 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:
x. El mtodo getSelectedIndex me dice el ndice del elemento que est seleccionado.
8/3/2019 PRACTICAS DE COMPONENTES
13/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
PROGRAMACION ORIENTADA A OBJETO 13
y. Por ejemplo, si est seleccionado el primero el ndice es 0, si est seleccionado elsegundo el ndice es 1, etc.
z. Si este mtodo devuelve -1, entonces es seal de que no hay ningn elementoseleccionado.
aa. 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 serel siguiente:
16. Se podra haber prescindido del botn aceptar si el cdigo anterior se hubiera puesto en elevento mouseClicked del cuadro de lista en vez de en el actionPerformeddel botn Aceptar.En este caso, cada vez que se seleccionara un elemento de la lista, automticamenteaparecera el mensaje en la etiqueta.
Se anima a que realice esta modificacin.
CONCLUSINEl objeto JList permite crear cuadros de lista. Estos objetos contienen una serie de elementosque 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.
8/3/2019 PRACTICAS DE COMPONENTES
14/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
PROGRAMACION ORIENTADA A OBJETO 14
EJERCICIO GUIADO. JAVA: CUADROS COMBINADOS
1. Realiza un nuevo proyecto.
2. En la ventana principal debes aadir lo siguiente:
bb. Una etiqueta con borde llamada etiResultado.
3. Aade un cuadro combinado (combo). Los cuadros combinados son objetos del tipoJComboBox. 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) Aparecerlo siguiente:
8/3/2019 PRACTICAS DE COMPONENTES
15/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
PROGRAMACION ORIENTADA A OBJETO 15
6. Al igual que pasaba con los cuadros de lista, se pueden eliminar los elementos que contiene elcombo y aadir elementos propios. Use los botones Aadir y Eliminar para aadir la siguientelista de elementos:
RojoVerdeAzul
7. Ejecuta el programa y observa el funcionamiento del desplegable...
8/3/2019 PRACTICAS DE COMPONENTES
16/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
PROGRAMACION ORIENTADA A OBJETO 16
8. Vamos a hacer que cuando se elija un elemento del desplegable, en la etiqueta aparezca unmensaje indicando el color elegido.
Para ello, debes programar el evento actionPerformeddel combo y aadir el siguiente cdigo:
String mensaje="El color elegido es ";
mensaje=mensaje+cboColores.getSelectedItem().toString();
etiResultado.setText(mensaje);
9. Este cdigo hace lo siguiente:
cc. Crea una variable de cadena.dd. Concatena dentro de ella el mensaje El color elegido es con el color seleccionado.ee. Observa el mtodo getSelectedItem, se usa para saber el elemento seleccionado del
combo. Es necesario convertirlo a texto con toString.ff. 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, puedenpermitir que se escriba texto dentro de ellos. Para hacer esto, basta con cambiar su propiedadeditable y activarla.
8/3/2019 PRACTICAS DE COMPONENTES
17/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
PROGRAMACION ORIENTADA A OBJETO 17
12. Ejecuta el programa y observa como se puede escribir dentro del combo. Al pulsar Enter, elprograma funciona igualmente con el texto escrito.
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 opcineditable.
A travs del mtodo getSelectedItem se puede extraer la opcin seleccionada o el texto escritoen el combo.
Se escribe aqu yse pulsa enter
8/3/2019 PRACTICAS DE COMPONENTES
18/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
PROGRAMACION ORIENTADA A OBJETO 18
EJERCICIO GUIADO. JAVA: MODELOS DE CUADRO DE LISTA
1. Realiza un nuevo proyecto.
2. En la ventana principal debes aadir lo siguiente:
gg. 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 sellamar lstNombres. Recuerda que las listas aparecen dentro de un objeto del tipo
JScrollPane.
8/3/2019 PRACTICAS DE COMPONENTES
19/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
PROGRAMACION ORIENTADA A OBJETO 19
5. Aade dos botones al formulario. Uno de ellos tendr el texto Curso 1 y se llamarbtnCurso1 y el otro tendr el texto Curso 2 y se llamar btnCurso2.
6. En el evento actionPerformeddel 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 actionPerformeddel 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:
hh. Lo que hace cada botn es rellenar el cuadro de lista con una serie de nombres. En elcaso 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.
ii. El contenido de un cuadro de lista es lo que se denomina un modelo. El modelo esun objeto que contiene el listado de elementos de la lista.
jj. Los modelos de las listas son objetos del tipo DefaultListModel.
8/3/2019 PRACTICAS DE COMPONENTES
20/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
PROGRAMACION ORIENTADA A OBJETO 20
kk. Lo que hace el programa es crear un modelo. Luego rellena el modelo con datos, yfinalmente asocia el modelo al cuadro de lista. Veamos como se hace todo esto.
ll. Primero se crea el modelo, a travs de la siguiente instruccin (ser necesario aadir
el importcorrespondiente, atento a la bombillita):
DefaultListModel modelo = new DefaultListModel();
mm. El modelo tiene un mtodo llamado addElementque permite introducir datosdentro de l. As pues usamos este mtodo para aadir los datos al modelo.
modelo.addElement("Ana");
modelo.addElement("Marta");
modelo.addElement("Jose");
nn. Finalmente asociamos el modelo creado al cuadro de lista de la siguiente forma:
lstNombres.setModel(modelo);
oo. As pues, aqu tienes una forma de cambiar el contenido de un cuadro de lista desde elpropio programa.
9. Prueba a ejecutar el programa. Observa como cuando pulsas cada botn cambia el contenidode la lista:
10. Ahora aade el siguiente cdigo al evento mouseClickeddel cuadro de lista:
etiResultado.setText(lstNombres.getSelectedValue().toString());
Click y cambia el
listado.
8/3/2019 PRACTICAS DE COMPONENTES
21/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
PROGRAMACION ORIENTADA A OBJETO 21
Esta instruccin hace que al seleccionar un elemento del cuadro de lista ste aparezca en laetiqueta etiResultado. Recuerda que el mtodo getSelectedValue permite recoger el elementoseleccionado (hay que convertirlo a cadena con toString)
11. Ejecuta el programa:
12. Una propuesta. Aada un botn Vaciar llamado btnVaciar. Este botn vaciar el contenidode la lista. Para esto lo nico que tiene que hacer es crear un modelo y, sin introducir ningnvalor 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 DatosSe puede crear un modelo y luego introducir datos en l. Luego se puede asociar esemodelo a la lista. De esta manera se puede cambiar el contenido de la lista en cualquiermomento.
Click y aparece
el elementoseleccionado enla etiqueta.
8/3/2019 PRACTICAS DE COMPONENTES
22/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
PROGRAMACION ORIENTADA A OBJETO 22
EJERCICIO GUIADO. JAVA: MODELOS DE CUADRO DE LISTA
1. Realiza un nuevo proyecto.
2. En la ventana principal debes aadir lo siguiente:
pp. Un combo llamado cboNumeros.qq. Un botn Pares llamado btnPares.rr. Un botn Impares llamado btnImpares.ss. Una etiqueta con borde llamada etiResultado.
3. Elimina todos los elementos que contenga el combo. Recuerda, debes usar la propiedadmodel 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 actionPerformeddel botn Pares, programa lo siguiente:
int i;
DefaultComboBoxModel modelo = new DefaultComboBoxModel();
for (i=0;i
8/3/2019 PRACTICAS DE COMPONENTES
23/44
8/3/2019 PRACTICAS DE COMPONENTES
24/44
8/3/2019 PRACTICAS DE COMPONENTES
25/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
PROGRAMACION ORIENTADA A OBJETO 25
8/3/2019 PRACTICAS DE COMPONENTES
26/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
PROGRAMACION ORIENTADA A OBJETO 26
EJERCICIO GUIADO. JAVA: TOGGLEBUTTONS
1. Realiza un nuevo proyecto.
2. Crears una ventana como la que sigue teniendo en cuenta lo siguiente:
yy. Se aadir una etiqueta con el texto Precio Base. Nohace falta cambiarle su nombre.
zz. Se aadir un cuadro de texto llamado txtPrecioBase.
aaa. Se crear un botn Calcular, llamadobtnCalcular.
bbb. Se crear una etiqueta vaca y con bordellamada etiTotal. Use la propiedad fontde esta etiqueta
para hacer que el texto tenga un mayor tamao.
ccc. Debes aadir tambintres botones, con el texto Instalacin, Formacin yAlimentacin BD respectivamente.
Estos botones no son botones normales, son botones del tipoJToggleButton. Usa este tipo de objeto para crearlos.
Estos botones, se diferencian de los botones normales enque se quedan pulsados cuando se hace un clic sobre ellos, yno vuelven a su estado normal hasta que no se vuelve ahacer clic sobre ellos.
Los tres botones se llamarn respectivamente:tbtnInstalacion, tbtnFormacion, tbtnAlimentacionBD.
ddd. Aade finalmente tres etiquetas conteniendo los nmeros 40, 200, 200. Laprimera se llamar etiPrecioInstalacion, la segunda etiPrecioFormacion y la terceraetiPrecioAlimentacionBD.
3. Prueba el programa y comprueba el funcionamiento de los botones JToggleButton:
8/3/2019 PRACTICAS DE COMPONENTES
27/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
PROGRAMACION ORIENTADA A OBJETO 27
4. Se pretende que el programa funcione de la siguiente forma:
eee. El usuario introducir un precio base para el servicio que se vende.fff. A continuacin, si el cliente quiere la instalacin, activar el botn Instalacin.
ggg. Si el cliente quiere la formacin, activar el botn Formacin.hhh. Si el cliente quiere la Alimentacin de Base de Datos, activar el botnAlimentacin BD.
iii. Ten en cuenta que el cliente puede querer una o varias de las opciones indicadas.jjj. Finalmente se pulsar el botn calcular y se calcular el precio total. Este precio se
calcula de la siguiente forma:
Precio Total = Precio Base + Precio Extras.
El precio de los Extras depender de las opciones elegidas por el usuario. Por ejemplo,si el usuario quiere Instalacin y Formacin, los extras costarn 240 euros.
5. As pues, se programar el actionPerformeddel botn Calcular de la siguiente forma:
Observa como al pulsar los
JToggledButton estos se quedanpulsados.
Si se vuelven a activar se despulsan.
8/3/2019 PRACTICAS DE COMPONENTES
28/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
PROGRAMACION ORIENTADA A OBJETO 28
double precio_base;
double precio_instal; //precio instalacin
double precio_for; //precio formacion
double precio_ali; //precio alimentacion
//Recojo datos desde la ventana:
precio_base = Double.parseDouble(txtPrecioBase.getText());
precio_instal = Double.parseDouble(etiPrecioInstalacion.getText());
precio_for = Double.parseDouble(etiPrecioFormacion.getText());
precio_ali = Double.parseDouble(etiPrecioAlimentacionBD.getText());
//Ahora que tengo los datos, puedo hacer clculos.
//Al precio base se le van aadiendo precio de extras
//segn estn o no activados los JToggleButtons
double precio_total;
precio_total = precio_base;
if (tbtnInstalacion.isSelected()) { //Si se seleccion instalacin
precio_total = precio_total+precio_instal;
}
if (tbtnFormacion.isSelected()) { //Si se seleccion formacin
precio_total = precio_total+precio_for;
}
if (tbtnAlimentacionBD.isSelected()) { //Si se seleccion Alimentacin BD
precio_total = precio_total+precio_ali;
}
//Finalmente pongo el resultado en la etiqueta
etiTotal.setText(precio_total+" ");
6. Veamos una explicacin del cdigo:
kkk. Primero se crean variables doubles (ya que se admitirn decimales) para poderhacer los clculos.
lll. Se extraern los datos de la ventana y se almacenarn en dichas variables. Para ello,hay que convertir desde cadena a double:
precio_base = Double.parseDouble(txtPrecioBase.getText());
precio_instal = Double.parseDouble(etiPrecioInstalacion.getText());
precio_for = Double.parseDouble(etiPrecioFormacion.getText());
precio_ali = Double.parseDouble(etiPrecioAlimentacionBD.getText());
mmm. Una vez obtenidos los datos en forma numrica, ya se pueden hacer clculoscon ellos. El programa declara una nueva variable precio_totaldonde se introducir elresultado. En primer lugar se introduce en esta variable el precio base.
double precio_total;
precio_total = precio_base;
8/3/2019 PRACTICAS DE COMPONENTES
29/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
PROGRAMACION ORIENTADA A OBJETO 29
nnn. A continuacin se le suma al precio_total los precios de los extras si el botncorrespondiente est seleccionado. Esto se hace a travs de if. Por ejemplo, parasumar el extra por instalacin:
if (tbtnInstalacion.isSelected()) { //Si se seleccion instalacinprecio_total = precio_total+precio_instal;
}
Esto significa: Si el botn instalacin est seleccionado, aade al precio total el preciopor instalacin
Observa el uso del mtodo isSelectedpara saber si el botn tbtnInstalacion ha sidoseleccionado.
ooo. Finalmente el resultado se muestra en la etiqueta de total.
7. Comprueba el funcionamiento del programa
8. Supongamos que normalmente (en el 90 por ciento de los casos) la instalacin es solicitadapor el usuario. Podra ser interesante que el botn Instalacin ya saliera activado al ejecutarseel programa. Para ello, aade en el Constructorla siguiente lnea.
tbtnInstalacion.setSelected(true);
Esta lnea usa el mtodo setSelectedpara activar al botn tbtnInstalacin.
Comprueba esto ejecutando el programa.
Introduce una cantidad (usa el puntopara los decimales)
Selecciona los extras que desees.
Pulsa Calcular y obtendrs el resultado.
8/3/2019 PRACTICAS DE COMPONENTES
30/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
PROGRAMACION ORIENTADA A OBJETO 30
CONCLUSIN
Los JToggleButton son botones que pueden quedarse pulsados.
A travs del mtodo isSelected podemos saber si un JToggleButton est seleccionado.
Tambin puedes usar el mtodo setSelected para seleccionar o no un botn de este tipo.
Realmente, estos botones no suelen ser muy usados, ya que pueden ser sustituidos porCuadros de Verificacin (JCheckBox) que son ms conocidos.
8/3/2019 PRACTICAS DE COMPONENTES
31/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
PROGRAMACION ORIENTADA A OBJETO 31
EJERCICIO GUIADO. JAVA: SLIDERS
Introduccin a los JSliders
La clase JSlider permite crear objetos como el siguiente:
Estos elementos tienen un pequeo recuadro que se puede arrastrar a derecha o izquierda. Segn laposicin del recuadro, el JSlider tendr un valor concreto.
El JSlider se puede configurar para que muestre los distintos valores que puede tomar:
Tambin se puede configurar de forma que los valores mnimo y mximo sean distintos:
El valor que tiene un JSlider es el valor al que apunta el recuadro del JSlider. En la imagen anterior, elJSlider tiene un valor de 85.
Se ver a continuacin las caractersticas ms interesantes de los JSlider y como programarlos.
Ejercicio guiado
1. Crea un nuevo proyecto.
2. Aade en l un JSLider. Su nombre ser slDeslizador.
8/3/2019 PRACTICAS DE COMPONENTES
32/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
PROGRAMACION ORIENTADA A OBJETO 32
3. Aade una etiqueta con borde. Su nombre ser etiValor.
4. La ventana tendr el siguiente aspecto:
5. Un JSlider tiene un valor mnimo y un valor mximo. El valor mnimo es el valor que tienecuando el recuadro est pegado a la parte izquierda, mientras que el valor mximo es el valorque tiene cuando el recuadro est pegado a la parte derecha.
El valor mnimo y mximo del JSlider se puede cambiar. Busca las propiedades maximumyminimumdel JSlider y asigna los siguientes valores:
Mximo: 500Mnimo: 100
6. Se puede asignar un valor inicial al JSlider a travs de su propiedad value. Busque estapropiedad y asigne un valor de 400. Observe donde se sita el recuadro del JSlider.
8/3/2019 PRACTICAS DE COMPONENTES
33/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
PROGRAMACION ORIENTADA A OBJETO 33
7. Se puede mejorar el JSlider definiendo unas divisiones (medidas) Por ejemplo, haremos quecada 50 unidades aparezca una divisin. Para ello use la propiedad majorTickSpacingyasigne un 50.
8. Esto, en realidad, no produce ningn cambio en el JSlider. Para que las divisiones se vean, esnecesario que active tambin la propiedad paintTicks. Esta propiedad pintar divisiones en elJSlider:
9. An se puede mejorar la presentacin del JSlider, si hacemos que aparezca el valor de cadadivisin. Para ello debes activar la propiedad paintLabel.
10. Ejecuta el programa para ver el funcionamiento del Deslizador y su aspecto. Debe ser
parecido al siguiente:
Medidas cada 50unidades
8/3/2019 PRACTICAS DE COMPONENTES
34/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
PROGRAMACION ORIENTADA A OBJETO 34
11. Bien. Ahora se pretende que cuando el usuario arrastre el deslizador, en la etiqueta aparezca
el valor correspondiente. Para ello tendr que programar el evento stateChangeddel JSlider.
El evento stateChangedsucede cuando el usuario arrastra el recuadro del deslizador.
En este evento programe lo siguiente:
etiValor.setText("El valor es: "+slDeslizador.getValue());
12. Ejecute el programa y observe lo que sucede cuando arrastra el deslizador.
13. La explicacin del cdigo es la siguiente:
a. El mtodo getValuedel deslizador nos devuelve el valor que tiene actualmente eldeslizador.
b. Este valor es concatenado a la cadena El valor es: y es mostrado en la etiqueta atravs del conocido setText.
14. A continuacin se mencionan otras propiedades interesantes de los JSlider que puedes probarpor tu cuenta:
orientation
Movemos aqu.
Y aparece el valor
correspondiente aqu.
8/3/2019 PRACTICAS DE COMPONENTES
35/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
PROGRAMACION ORIENTADA A OBJETO 35
Permite cambiar la orientacin del JSlider. Podras por ejemplo hacer que el JSlider estuvieraen vertical.
minorTickSpacing
Permite asignar subdivisiones a las divisiones ya asignadas. Prueba por ejemplo a asignar un10 a esta propiedad y ejecuta el programa. Observa las divisiones del JSlider.
snapToTicksCuando esta propiedad est activada, no podrs colocar el deslizador entre dos divisiones. Esdecir, el deslizador siempre estar situado sobre una de las divisiones. Prueba a activarla.
paintTrackEsta propiedad permite pintar o no la lnea sobre la que se desliza el JSlider. Prueba adesactivarla.
CONCLUSIN
Los JSliders son objetos deslizadores. Permiten elegir un valor arrastrando un pequeorecuadro de derecha a izquierda o viceversa.
El valor de un JSliders puede ser obtenido a travs de su mtodo getValue.
Si quieres programar el cambio (el arrastre) en el deslizador, tienes que programar el eventollamado stateChanged.
8/3/2019 PRACTICAS DE COMPONENTES
36/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
PROGRAMACION ORIENTADA A OBJETO 36
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 puedehacer que el valor del cuadro aumente o disminuya. Tambin se puede escribir directamente un valordentro del cuadro.
Ejercicio guiado1. 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 oporque se escribi dentro) aparezca el valor correspondiente dentro de la etiqueta. Para ello,tendr que programar el evento stateChangeddel JSpinner.
En el evento stateChangedintroduzca el siguiente cdigo:
etiValor.setText("El valor es: "+spiValor.getValue().toString());
8/3/2019 PRACTICAS DE COMPONENTES
37/44
8/3/2019 PRACTICAS DE COMPONENTES
38/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
PROGRAMACION ORIENTADA A OBJETO 38
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 comprendidosentre 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. (Observa quesolo 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 delJSPinner. 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 como cambian los valores del JSpinner.
15. El modelo del JSpinner tiene tambin un mtodo llamado setValueque permite asignar unvalor inicial al modelo. Pruebe a usar este mtodo para hacer que el JSpinner muestre desdeel principio el valor 4.
Ahora los valores estncomprendidos entre 0 y10
8/3/2019 PRACTICAS DE COMPONENTES
39/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
PROGRAMACION ORIENTADA A OBJETO 39
CONCLUSIN
Los JSpinners son objetos que permiten seleccionar un nmero, ya sea escribindolo en elrecuadro, 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 objetomodelo 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 se une elmodelo 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.
8/3/2019 PRACTICAS DE COMPONENTES
40/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
PROGRAMACION ORIENTADA A OBJETO 40
EJERCICIO GUIADO. JAVA: SCROLLBARS
Introduccin a las JscrollBars (Barras de desplazamiento)
La clase JScrollBar permite crear barras de desplazamiento independientes, como la que se muestraa continuacin:
La barra tiene un valor mnimo, que se consigue haciendo que el recuadro de la barra dedesplazamiento est pegado a la parte izquierda.
Cuando se pulsa algunos de los botones de la barra de desplazamiento, el valor de la barra seincrementa / decrementa poco a poco. A este incremento / decremento lo llamaremos incrementounitario.
Cuando se pulsa directamente sobre la barra, el valor de la barra se incrementa / decrementa enmayor cantidad. A este incremento / decremento lo llamaremos incremento en bloque.
Valor mnimo
Decrementa el valor poco apoco (incremento unitario)
Incrementa el valor poco a poco(incremento unitario)
Al pulsar directamente sobre la barrase decrementa en mayor cantidad(incremento en bloque)
Al pulsar directamente sobre labarra se incremente en mayorcantidad (incremento en bloque)
8/3/2019 PRACTICAS DE COMPONENTES
41/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
PROGRAMACION ORIENTADA A OBJETO 41
Ejercicio guiado
1. Para comprender mejor el funcionamiento de las barras de desplazamiento se crear unproyecto 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 llamadaOrientationpara 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:
6. Interesa que cuando el usuario cambie de alguna manera la barra de desplazamiento, en laetiqueta aparezca el valor de la barra.
Para ello, se debe programar el evento AdjustmentValueChangedde la barra dedesplazamiento.
En este evento programa lo siguiente:
etiValor.setText("El valor es: "+desValor.getValue());
8/3/2019 PRACTICAS DE COMPONENTES
42/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
PROGRAMACION ORIENTADA A OBJETO 42
7. Como ves, se coloca en la etiqueta el valor de la barra. El valor de la barra se obtiene con elmtodo getValue. Ejecuta el programa para ver su funcionamiento.
8. Sigamos estudiando el programa. Se pide que cambies las siguientes propiedades de tubarra:
Minimum Permite asignar el valor mnimo de la barra. Escribe un 50Maximum Permite asignar el valor mximo de la barra. Escribe un 150
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.
Pulsa aqu y observa
como el valor cambiapoco a poco
Pero si pulsas aqu elvalor cambia en mayorcantidad
5
8/3/2019 PRACTICAS DE COMPONENTES
43/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
PROGRAMACION ORIENTADA A OBJETO 43
9. Ejecuta ahora el programa y comprueba su funcionamiento:
Si pulsas aqu, el valorse incrementa de 2 en2, ya que elincremento unitarioseconfigur en 2.
Si pulsas aqu, el valorse incrementa de 20en 20, ya que elincremento en bloquees de 20.
Si llevas la barra dedesplazamiento al mnimo, suvalor ser de 50, ya que seconfigur as con la propiedadminimum
Observa lo que sucede cuando llevasla barra de desplazamiento al mximo:aparece un valor de 145, cuando elvalor mximo que asignamos fue de150 por qu?
8/3/2019 PRACTICAS DE COMPONENTES
44/44
UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES
10. Tal como se ha indicado anteriormente, pasa algo raro con la barra de desplazamiento cuandoesta 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:
* 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 setValuede la barra de desplazamiento se puede asignar un valor iniciala la barra. Programe en el constructor de su programa lo necesario para que la barra dedesplazamiento tenga un valor de 70 al empezar el programa.
CONCLUSIN
Las JScrollBars son barras de desplazamiento independientes. Al igual que los JSliders, lasJScrollBars tienen un valor concreto, que puede ser obtenido a travs del mtodo getValue.
Entre las caractersticas programables de una barra de desplazamiento, tenemos lassiguientes:
- 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)
Valor mximo (150) *
Valor de la barra (145) **
5 ***
Top Related