Está en la página 1de 15

Universidad los ngeles de Chimbote

Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Asignatura: Programacin isual
US! "E# !$%E&! %C!'$!$!(
!b)eto de Control %Combo$o*
Un objeto de control JComboBox permite dibujar en el formulario una lista desplegadle, la
cual contiene opciones (tems). ComboBox significa cuadro combinado porue combina
un cuadro de texto con una caja de lista, es como si fuera un Jtext!ield me"clado o
combinado con un Jlist. #iene la particularidad de ue se debe seleccionar un bot$n de
comando de despliegue % luego seleccionar la opci$n o tem.
Una &e" dado clic en el bot$n de despliegue se muestra las opciones o tems del objeto
Elaborado por: Martn Gustavo Salcedo Quiones 1
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Asignatura: Programacin isual
Pro+iedades m,s usadas:
'odel( )ermite establecer los tems de la caja de lista.
!ont( )ermite establecer el tipo de letra en el objeto de control.
*nabled( )ara +abilitar o in+abilitar el uso del objeto de control.
get,elected-ndex( Contiene el ndice del tem seleccionado
set,elected-tem( Contiene el tem seleccionado
'-todos m,s usados:
set'odel()( )ermite &incular una &ariable objeto de tipo model a un objeto de
control J.ist.
get-tem/t()( 0e&uel&e el tem ue est1 en el ndice ue se especifica.
get,elected-ndex()( Contiene el &alor del ndice acti&o o ndice actual del tem
seleccionado de la caja de lista. *l ndice es un &alor num2rico correlati&o no &isible
ue &a desde 3.
Evento m,s usado:
4alueC+anged()( ,ucede cuando el usuario selecciona un tem de la caja de lista.
A+licacin
Construir una aplicaci$n ue permita el ingreso del nombre del alumno % poder
seleccionar de una lista desplegadle una categora de los cursos. /l momento de
seleccionar la categora se debe mostrar los cursos con sus respecti&os costos en las
cajas de listas (los J.ist ue se muestran al lado i"uierdo del dise5o del formulario). Una
&e" &isuali"ado los cursos el usuario puede seleccionar % agregar en las cajas de listas
(los Jlist ue se muestran al lado derec+o del dise5o del formulario) los cursos solicitados
por el alumno. *l pago por el ser&icio de ense5an"a se establece de la siguiente manera(
Elaborado por: Martn Gustavo Salcedo Quiones 2
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Asignatura: Programacin isual
*xiste un pago por matrcula del 637 del costo total (suma de los costos de los
cursos escogidos) siempre % cuando uiera el alumno lle&ar un solo curso, 837 del
costo total si lle&a dos cursos % 937 del costo total si lle&a : o m1s cursos.
*l costo total tiene un descuento del ;37 si la forma de pago es al contado % un
incremento del ;37 si es al cr2dito.
*xiste un pago mensual cuando la forma de pago es al cr2dito % es eui&alente al
costo total incrementado di&idido en < cuotas.
Solucin:
Usar1s el mismo pro%ecto utili"ado en la sesi$n anterior % s$lo agregar1s un
formulario (Jframe).
-nmediatamente se muestra la siguiente &entana(
Elaborado por: Martn Gustavo Salcedo Quiones 3
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Asignatura: Programacin isual
.uego dar clic en el bot$n de comando Finish.
/ continuaci$n se muestra el entorno de desarrollo de =etBeans % no ol&ides de
dar clic en el bot$n derec+o del mouse sobre el formulario % establece
AbsoluteLayout en Set Layout.
)rocede a colocar un objeto Jlabel con la expresi$n /.U'=>( acompa5ado de
un cuadro de texto (J#ext!ield). )or debajo de /.U'=>( colocar un objeto Jlabel
ue exprese Categora de Cursos( % al lado derec+o de 2ste objeto colocar un
objeto JComboBox.
Elaborado por: Martn Gustavo Salcedo Quiones 4
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Asignatura: Programacin isual
,elecciona el objeto JComboBox % elige en la &entana de propiedades la propiedad
model ue permite colocar los tems dentro de la caja de lista desplegadle.
.uego de seleccionar el bot$n de comando referido a la propiedad model se
muestra la siguiente &entana(
-ngresas las categoras de cursos como son( ?,eleccionar@, 0ise5o Ar1fico,
Elaborado por: Martn Gustavo Salcedo Quiones 5
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Asignatura: Programacin isual
0ise5o Beb, >fim1tica, .enguajes de )rogramaci$n % ,istemas >perati&os,
uedando el dise5o del formulario de la siguiente manera(
Colocar1s un objeto Jlabel con la expresi$n Cursos >fertados % otro objeto Jlabel
ubicado al lado derec+o de 2ste Cltimo con la expresi$n Costo. /5ades dos listas
debajo de las expresiones de estos dos Cltimos Jlabel, +aciendo ue los tems
sean eliminados o remo&idos a tra&2s del uso de la propiedad model. .uego
agregas dos botones de comando ue indiuen Agregar % Eliminar.
)osteriormente, a5ades dos objetos Jlabel ue expresen( Cursos *scogidos %
Costo % debajo de estos objetos Jlabel agregas dos objetos J.ist siendo tambi2n
eliminados o remo&idos los tem a tra&2s del uso de la propiedad model.
/ continuaci$n agregas un objeto Jlabel con la expresi$n !orma de )ago( % al
lado derec+o de 2ste Cltimo objeto colocas un JComboBox ue debe contener
como tems( ?,eleccionar@, Contado % Cr2dito. .uego los botones de comando
C/.CU./D, B>DD/D % C*DD/D % los objetos ue mostrar1n el monto de la
Elaborado por: Martn Gustavo Salcedo Quiones 6
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Asignatura: Programacin isual
matrcula, el costo total % el pago mensual. .os nombres de los objetos de control
dibujados en el formulario ueda de la siguiente manera(
/+ora bien, si obser&amos en el dise5o del formulario, los cuatros objetos J.ist no
tienen tems. .os objetos J.ist referidos a Cursos >fertados % Costo (objetos
ubicados al lado i"uierdo del dise5o del formulario) se llenar1n de tems de
acuerdo a lo seleccionado en la lista desplegadle referido a la Categora de Cursos.
.os objetos Jlist referidos a Cursos *scogidos % Costos se llenar1n en la medida
ue se seleccione un curso ofertado % se agregue con el bot$n de comando
Agregar. .os < objetos J.ist deben tener un modelo (model) cada uno, para ello
debes definir < &ariables( modelo;, modeloE, modelo: % modelo< del tipo
DefaultListModel(). )ara poder +acer uso de la clase DefaultListModel se debe
+acer uso del pauete ja&ax.sFing.GH % debe ser escrito despu2s del pauete
/plicaciones.
Elaborado por: Martn Gustavo Salcedo Quiones 7
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Asignatura: Programacin isual
/+ora procede a escribir la definici$n de las &ariables del tipo 0efault.ist'odel en
la clase frmCursos*xtension.
Una &e" definido las < &ariables de memoria del tipo DefaultListModel, en el
m-todo constructor se debe indicar ue la &ariable modelo/ es para la caja de
lista lstCur!fer, la &ariable modelo0 para la caja de lista lstCostos, la &ariable
modelo1 es para la caja de lista lstCurEsco % la &ariable modelo2 es para la caja
de lista lstCos. #ambi2n +acemos ue los botones de comando /gregar % *liminar
se in+abilite su uso desde la ejecuci$n de la aplicaci$n. /dem1s le indicamos una
locali"aci$n dentro de la pantalla % el tama5o del formulario (s$lo escribe lo ue
se5ala la lla&e de color rojo).
/+ora le toca el turno en la programaci$n al objeto JComboBox denominado
cboCategorias en el e&ento /ction)erformed, para ello debes seleccionar el objeto
mencionado % dando clic bot$n derec+o del mouse eliges *&ents % luego como
/ctions seleccionas /ction)erformed.
Elaborado por: Martn Gustavo Salcedo Quiones 8
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Asignatura: Programacin isual
*n el e&ento mencionado programa lo siguiente (s$lo escribe lo ue se5ala la lla&e
de color rojo)(
Elaborado por: Martn Gustavo Salcedo Quiones 9
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Asignatura: Programacin isual
,e declara una &ariable de memoria llamada indice para ue almacene el ndice
actual del tem seleccionado del objeto JComboBox llamado cboCategorias.
,abiendo el &alor del ndice actual o acti&o se +ace uso de una sentencia selecti&a
s3itch ue e&alCa cu1l de los tems +a sido seleccionado. ,e sabe ue el primer
tem de la lista desplegadle es <Seleccionar> % le corresponde el ndice 3, Diseo
Grfico el ndice ;, Diseo Web el ndice E % as sucesi&amente. Cuando sea
<Seleccionar> solo se procede a limpiar los objetos lstCur!fer % lstCostos a
tra&2s del m2todo clear45 aplicados a las &ariables modelo/ % modelo0. ,i el tem
seleccionado es Diseo Grfico se procede a limpiar los objetos lstCur!fer %
lstCostos % se agrega los nombres de los cursos Corel Draw % !o"o S!ow con
sus respecti&os costos a tra&2s del uso del m2todo addElement aplicados a las
&ariables modelo/ % modelo0 ue tienen relaci$n directa con los objetos
lstCur!fer % lstCostos. 0e igual forma se trabaja para los dem1s tems del objeto
JComboBox llamado cboCategorias.
,i en estos momentos procedes a ejecutar la aplicaci$n se mostrar1 el formulario
de la siguiente manera(
I si seleccionas el tem 0ise5o Ar1fico se &isuali"ar1 los cursos con sus
respecti&os costos en los J.ist del lado i"uierdo del dise5o del formulario.
Elaborado por: Martn Gustavo Salcedo Quiones 1#
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Asignatura: Programacin isual
,alte de la ejecuci$n % continuemos con la programaci$n.
,elecciona el objeto lstCur!fer % ubcate en el e&ento $al%eC!a&e' perteneciente
a #istSelection % 2ste a su &e" pertenece a Events. Decuerda ue esto se +ace
seleccionando al objeto lstCur!fer % dando clic bot$n derec+o del mouse se
muestra un menC flotante. *n el e&ento mencionado programa lo siguiente(
,e declara una &ariable entera llamada ndice, esta &ariable recibe el &alor del
ndice del tem seleccionado gracias al m2todo getSelectedInde*45. .o ue se
uiere es seleccionar el tem de la caja de lista de lstCostos ue tenga el mismo
ndice ue lstCur!fer, para ello se usa el m2todo setSelectedIndex(indice) para
dar el mismo ndice a la caja de lista lstCostos. !inalmente +acemos ue el bot$n
de comando /gregar se +abilite con el m2todo setEnabled()
/ continuaci$n escribe el siguiente c$digo en el bot$n de comando Agregar (s$lo
escribe lo ue se5ala la lla&e de color rojo)(
Elaborado por: Martn Gustavo Salcedo Quiones 11
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Asignatura: Programacin isual
/u declaramos dos &ariables de tipo S"rin& llamados curso % costo % las
&ariables enteras total % i. *n la &ariable curso se almacena el curso seleccionado
en la lista lstCur!fer, el m2todo getSelectionValue() trae consigo el tem
seleccionado pero lo trae como objeto % al poner (Sting) +acemos ue se
con&ierta en cadena de caracteres para ue pueda ser asignada a la &ariable
curso. 0e igual manera se +ace con la &ariable costo. )ara agregar un tem a una
caja de lista se usa el m2todo addElement perteneciente al objeto &ariable
modelo1 o modelo2. !inalmente in+abilitamos el bot$n de comando Agregar.
/+ora programa en la caja de lista lstCur*sco en el e&ento Value!hanged cuando
desees seleccionar un curso para luego eliminarlo (s$lo escribe lo ue se5ala la
lla&e de color rojo).
.a idea es la misma ue se aplic$ en la programaci$n sobre el e&ento
Value!hanged del objeto lstCur!fer. .a diferencia est1 en ue esta &e" se
+abilita el uso del bot$n de comando Eliminar.
*n el bot$n de comando eliminar colocas la siguiente programaci$n (s$lo escribe lo
ue se5ala la lla&e de color rojo)(
Elaborado por: Martn Gustavo Salcedo Quiones 12
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Asignatura: Programacin isual
*n esta programaci$n se +ace uso del m2todo emo"e() ue elimina un tem de la
lista a tra&2s de la &ariable objeto modelo1 $ modelo2 dado el &alor del ndice. /l
final de la programaci$n se in+abilita el bot$n de comando Eliminar.
/+ora procede a programar en el bot$n de comando Calcular (s$lo escribe lo ue
se5ala la lla&e de color rojo)(
,e declara la &ariable de memoria cuenta ue almacena la cantidad de tems
existentes en la caja de lista lstCurEsco a tra&2s del uso del m2todo Si6e45
aplicado a la &ariable modelo1. #ambi2n se declara una &ariable de memoria i de
tipo entero % tres &ariables de tipo float para el c1lculo de la matrcula, el costo total
% el pago mensual. / tra&2s de una sentencia fo se procede a obtener los &alores
Elaborado por: Martn Gustavo Salcedo Quiones 13
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Asignatura: Programacin isual
de la caja de lista lstCos usando la &ariable modelo2 con el m2todo elementAt457
para ue estos &alores sean sumados %a acumulados en la &ariable de memoria
ctotal. *n la primera sentencia if se procede a a&eriguar si las cajas de listas
lstCur*sco % .stCos tiene tems, si no tienen tems se &isuali"a un mensaje de
error indicando la necesidad de seleccionar % agregar cursos % se procede a
suspender la ejecuci$n del programa gracias a instrucci$n re"%rn (retornar). *n los
siguientes tres if se calcula el monto de la matrcula aplicando el porcentaje
indicado en el enunciado de la aplicaci$n. *n la siguiente sentencia if se e&alCa si
se seleccion$ una forma de pago % si no se logr$ +acerlo muestra un mensaje de
error % suspende la ejecuci$n del programa. .uego con las siguientes sentencias if
se e&alCa la forma de pago % se procede +acer los c1lculos respecti&os. !inalmente
se los resultados en las &ariables de memoria de tipo float se en&an a los objetos
J#ext!ield par ser &isuali"ados en el formulario.
.a programaci$n en los botones de comando Borrar % Cerrar es de la misma forma
como se aplic$ en los temas o sesiones anteriores. Cuando procedas a ejecutar tu
aplicaci$n se debe &isuali"ar el formulario % una &e" interactuado se mostrar1n los
resultados.
Elaborado por: Martn Gustavo Salcedo Quiones 14
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Asignatura: Programacin isual
*n el siguiente tema conoceremos a otro objeto de control % seguiremos trabajando con lo
aprendido en las sesiones o temas desarrollados +asta el momento.
Elaborado por: Martn Gustavo Salcedo Quiones 15