You are on page 1of 237

Visual Java usando

NetBeans
Contiene los objetos del paquete swing controls, los objetos contenedores del paquete
swing containers, los objetos del swing Windows y el desarrollo del caso de Bancos
Texto para el curso de
Programacin Visual I
del III ciclo de la escuela
de Ingeniera de Siste-
mas de la ULADEC
Elaborado por:
Ing. Martn Salcedo
Quiones
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
INDICE
Pgina
CAPITULO I: Objetos de control bsicos !"
Introd#ccin a la $rogramacin vis#al !%
Uso de los ob&etos 'label( ')e*t+ield , '-#ttom ..
Uso de los ob&etos de control 'radio-#tton , 'Chec/-o* ""
CAPITULO II:Objetos de control para lista y cuadrcula de datos 48
Uso del ob&eto 'list %0
Uso del ob&eto 'Combo-o* 12
Uso de ob&eto ')able 3!
CAPITULO III: Objetos contenedores y mens !"
Uso del ob&eto '+rame 0.
Ob&etos contenedores 'Panel , 'ScrollPanel 4!5
Ob&etos contenedores ')abbedPanel , '6es/to$Panel 4.2
Ob&etos Men#s 'men#-ar , 'Man#Item 4%5
Ob&etos Men#s 'radio-#ttonMen#Item( 'se$arator , 'men# 41!
CAPITULO I#: $istema de Aplicaci%n "&8
Constr#ccin de #n Sistema de A$licacin 450
Mane&o de los s7ing 7indo7s .!0
Presentacin de #n Sistema de A$licacin .40
Ing8 Mart9n Salcedo :#i;ones 2
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
CAPITULO I
OBJETOS DE CONTROL BASICOS
Ing8 Mart9n Salcedo :#i;ones 3
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
I'T(O)UCCI*' A LA P(O+(A,ACI*' #I$UAL
-.u/ es Pro0ramaci%n #isual1
La $rogramacin vis#al brinda los conocimientos necesarios $ara dise;ar , desarrollar
a$licaciones con #n entorno vis#al amigable , <cil de #tili=ar $or el #s#ario8 Los leng#a&es
de $rogramacin vis#al( como Vis#al 'ava( hacen sencilla la tarea de los $rogramadores
$or>#e antes constit#9a #na gran demora tiem$o en el dise;o de ventanas o <orm#larios8
Pro0ramaci%n orientada a Objetos
?n el caso del leng#a&e de $rogramacin( 'ava a$lica la $rogramacin orientada a ob&etos
Ing8 Mart9n Salcedo :#i;ones 4
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
@POOA8 La POO de<ine a los $rogramas en tBrminos de Cclases de ob&etosD( ob&etos >#e
son entidades >#e combinan estado @datosA( com$ortamiento @$rocedimientos o mBtodosA
e identidad @$ro$iedad o atrib#to del ob&etoA >#e lo di<erencia de los dems8 La POO
e*$resa #n $rograma como #n con&#nto de ob&etos( >#e colaboran entre ellos $ara
reali=ar tareas8
Podr9amos decir >#e las caracter9sticas de los ob&etos sonE
Los ob&etos se $#eden agr#$ar $ara <ormar las clases8
?l estado de los ob&etos est determinado $or los datos8
P#eden heredar $ro$iedades o atrib#tos de otros ob&etos8
Usando Mensa&es #n ob&eto se $#ede com#nicar con otro ob&eto8
Los mBtodos de<inen el com$ortamiento de los ob&etos8
2ibliotecas de Clases en 3a4a
Sabemos >#e 'ava es #n leng#a&e de $rogramacin con #n entorno de e&ec#cin de
a$licaciones como tambiBn entorno de e&ec#cin de des$lieg#e de a$licaciones8 ?s
#tili=ado $ara desarrollar a$$lets como a$licaciones8
'ava est com$#esto de bibliotecas de clases @$ac/ageA siendo las ms im$ortantesE
Pac5a0e Lan0: com$#esta $or clases con <#ncionalidades bsicas( arra,s(
cadenas de caracteres( entradaFsalida( e*ce$ciones( etc8 ?ste $a>#ete debes
haberlo #tili=ado en el c#rso de +#ndamentos de Programacin8
Pac5a0e Util: com$#esta $or clases $ara #tili=adas como nGmeros aleatorios(
vectores( $ro$iedades del sistema( etc8
Pac5a0e net: com$#esta $or clases( es #sada $ara la conectividad , traba&o con
redes( URL( etc8
Pac5a0e AppletE com$#esta $or clases( es #sada $ara el desarrollo de
a$licaciones e&ec#tables en navegadores8
Pac5a0e A6t y $6in0: com$#esta $or clases $ara el desarrollo de inter<aces
gr<icas de #s#ario8 ?l $a>#ete s7ing es el $a>#ete $or e*celencia $ara el
desarrollo de los temas del $resente c#rso8
Observa la sig#iente <ig#raE
Ing8 Mart9n Salcedo :#i;ones 5
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
C#al>#ier $rograma hecho en 'ava lleva a de<inir #n archivo de e*tensin 8&ava8 ?l
$rograma debe $asar $or #n $roceso de com$ilacin >#e consiste en convertir t#
$rograma <#ente @el archivo de e*tensin 8&avaA en #n archivo de e*tensin 8class ,
con&#ntamente con la biblioteca de clases se logra inter$retar lo $rogramado( es as9
c#ando ,a se $#ede e&ec#tar el $rograma , ver los res#ltados en la $antalla del
com$#tador8 Para este c#rso( en el >#e veremos $rogramacin vis#al , $or lo tanto el #so
de <orm#larios( se crear #n archivo adicional con e*tensin8<rm >#e g#ardar la
estr#ct#ra o dise;o del <orm#lario8
Veamos a contin#acin el entorno de desarrollo Net-eans( el c#al ,a conoces( $ero del
>#e vale la $ena re<or=ar alg#nas a<irmaciones necesarias $ara el c#rso8
'et2eans I)7 en la pro0ramaci%n 4isual
?l Net-eans es #n entorno de desarrollo integrado >#e $ermite crear a$licaciones de
escritorio( a$licaciones 7eb , a$licaciones mviles #tili=ando las Gltimas tecnolog9as $ara
los desarrolladores de so<t7are de 'ava8 ?l I6? de Net-eans es #n $rod#cto grat#ito , sin
restricciones de #so $#diendo escribir( com$ilar( de$#rar e im$lementar $rogramas en
'ava8 Net-eans es #n $ro,ecto o$en so#rce de desarrollo escrito en 'ava8 La $lata<orma
Net-eans da so$orte $ara escrit#ra de servlets( a,#da onHline , a,#das con el cdigo8
Usaremos la versin 18! de Net-eans $ara la constr#ccin , dise;o de las a$licaciones8
Ing8 Mart9n Salcedo :#i;ones 6
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Una ve= >#e ingresas al entorno de desarrollo de Net-eans se observaE
Para dar inicio a #na a$licacin de 'ava ba&o el entorno de Netbeans se debe de<inir #n
$ro,ecto( $ara ello( seleccionas la o$cin del menG denominada File. Se m#estra
inmediatamente #n menG <lotante c#,a $rimera o$cin indica New Proyect( est o$cin la
seleccionas8
Ing8 Mart9n Salcedo :#i;ones 7
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Al momento de seleccionar New Proyect se vis#ali=a la ventana sig#ienteE
6ado >#e n#estras a$licaciones van ser desarrolladas en entorno vis#al en Categories
seleccionas la car$eta 'ava , en Pro,ects seleccionas 'ava A$$lication8 L#ego hacer clic
Ing8 Mart9n Salcedo :#i;ones 8
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
en el botn de comando Next >#e mostrar la sig#iente ventana:

?s conveniente >#e #no mismo cree s# car$eta de destino de los archivos >#e se
generan $ara la constr#ccin de #na a$licacin8 S#$ongamos >#e la car$eta >#e
necesitamos crear se llama ?&ercicios , la creamos en la #nidad ?( $ara ello es necesario
dar clic en el botn de comando Browse8
Ing8 Mart9n Salcedo :#i;ones
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Una ve= indicada la n#eva car$eta ?&ercicios( $rocede a dar clic en el botn de comando
Abrir >#edando la ventana 'e6 3a4a Application de la sig#iente <ormaE
Ing8 Mart9n Salcedo :#i;ones !"
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Se observa >#e en Proyect Location se m#estra la car$eta destino del $ro,ecto8 Vamos
a s#$oner >#e se >#iere constr#ir #n $rograma >#e calc#le el $romedio de dos notas(
entonces la ventana deber9a >#edar de la sig#iente <ormaE
Al dar clic en Finish se mostrar el entorno de desarrollo de Net-eans listo $ara dar inicio
a la constr#ccin de la a$licacin8
Ing8 Mart9n Salcedo :#i;ones !!
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
C#ando se $retenda constr#ir #na a$licacin de entorno vis#al tendr9amos >#e #sar
$lantillas >#e el mismo Net-eans I6? te o<rece8 Ahora( seleccionemos el $a>#ete
e&ercicios , l#ego eli&amos la o$cin New , a contin#acin seleccionemos JFrameForm
Una ve= seleccionada la o$cin '+rame+orm se m#estra la ventana 'e6 38rame 9orm
$ara de<inir el nombre de clase8
Ing8 Mart9n Salcedo :#i;ones !2
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Como nombre de clase le $ondremos frmPromedio2Notas esto generar #n archivo de
e*tensin 8&ava dentro de la r#taE
E:\Ejercicios\Promedio2Notas\src\ejercicios\frmPromedio2Notas.jaa
, como veremos todo se enc#entra dentro de la car$eta ?&ercicios creada inicialmente en
la #nidad ?
Al dar clic en el botn de comando Finish se mostrar el entorno de desarrollo de
Net-eans listo $ara dar inicio al dise;o de #n <orm#lario , $or lo tanto dar comien=o a #na
a$licacin en #n entorno vis#al8
Ing8 Mart9n Salcedo :#i;ones !3
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Ing8 Mart9n Salcedo :#i;ones !4
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
U$O )7 LO$ O237TO$ 3LA27L: 3T7;T9I7L) <
32UTTO'
Una aplicaci%n sin usar 9ormulario
A contin#acin vamos a desarrollar #na a$licacin sencilla >#e $ermita calc#lar el rea del
tring#lo dado los valores de la base , la alt#ra8 No se #tili=ar <orm#lario( $ero s9 las
clases del $a>#ete s7ing $ara ingresos , salida de datos8
$oluci%n:
?stando en el entorno de desarrollo Net-eans seleccionamos la o$cin del menG ,
l#ego la o$cin New Proyect8
Ing8 Mart9n Salcedo :#i;ones !5
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Al momento de seleccionar Ne7 Pro,ect se vis#ali=a la sig#iente ventanaE
Ing8 Mart9n Salcedo :#i;ones !6
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Seleccionamos $ara !ate"ories 'ava , $ara Pro,ects Jaa A##lication , l#ego
damos clic en el botn de comando Next8
Usamos el botn de comando Browse $ara crear #na car$eta denominada
?&ercicios en la #nidad ?8 ?n Proyect Name colocamos Area)riang#lo , en el
c#adro de te*to re<erido a !reate $ain !lass colocamos ejercicios.AreaTriangulo(
lo c#al $ermitir crear #n $a>#ete denominado ejercicios , como $rimera clase
Area)riang#lo( es decir( se crea el archivo Area)riang#lo8&ava >#e $ertenecer al
$a>#ete ejercicios8
Ing8 Mart9n Salcedo :#i;ones !7
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Sabemos >#e en 'ava #na clase tiene comGnmente al mBtodo Main >#e es el
mBtodo >#e se e&ec#ta c#ando se a$lica %&n a la a$licacin constr#ida8 ?n el
entorno de Net-eans( #na clase creada( crea #n mBtodo >#e tiene el mismo
nombre de la clase a la >#e se denomina mtodo constructor , toda $rogramacin
hecha en Bste mBtodo se e&ec#tar $rimero antes >#e el mBtodo main8 Net-eans
generar #n $a>#ete @Pac/ageA denominado e&ercicios , dentro de ella se mostrar
la clase de acceso $Gblico AreaTriangulo8 ?l entorno de desarrollo de Net-eans
des$#Bs de dar clic en el botn Finish >#eda as9E
Ing8 Mart9n Salcedo :#i;ones !8
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Agregamos al cdigo de la $rogramacin generada( $or deba&o del $ac/age
e&ercicios( lo sig#ienteE
im$ort &ava8io8IJ
im$ort &ava*8s7ing8IJ
?l $a>#ete &ava*8s7ing8IJ $ermitir $oder crear ingresos , salida de datos a travBs
de ca&as de mensa&e8
Agregamos al cdigo en el mBtodo main de la clase Area)riang#lo como se
a$recia a contin#acin @lo escrito en a=#lA8
package ejercicios;
import java.io.*;
import javax.swing.*;
/**
*
* @author Administrador
*/
public class AreaTriangulo {
Ing8 Mart9n Salcedo :#i;ones !
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
/**
* @param args the command line arguments
*/
public static void main!tring"# args$ throws %&'xception
{
int base( altura;
double area;
base)%nteger.parse%nt*&ption+ane.show%nput,ialognull(-%ngrese la base. -$$;
altura)%nteger.parse%nt*&ption+ane.show%nput,ialognull(-%ngrese la altura-$$;
area)base*altura//;
*&ption+ane.show0essage,ialognull(-'l area del triangulo es. -1area$;
2
2
?n el mBtodo main observamos >#e $ara leer el dato $ara la variable base
#tili=amos el mBtodo showInputDialog de la clase JOptionPane >#e a s# ve=
$ertenece al $a>#ete swing, >#e mostrar #na ca&a de mensa&e $ara la lect#ra de
datos8 6e ig#al manera se traba&ar $ara leer el dato de alt#ra8
)ambiBn se observa el mBtodo sho7Message6ialog de la clase 'O$tionPane >#e
$ermite mostrar en #na ca&a de mensa&e el res#ltado del clc#lo del rea8
Seleccionamos Area)riang#lo en el entorno de desarrollo de Net-eans , l#ego
damos clic botn derecho del mo#se8 Se vis#ali=a #n menG <lotante( se elige la
o$cin %&n File , se $roceder a e&ec#tar el $rograma8
Ing8 Mart9n Salcedo :#i;ones 2"
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
C#ando la a$licacin es e&ec#tada se vis#ali=ar la sig#iente ventanaE
Nos $ide el ingreso del valor de la base , l#ego de dar clic en el botn de comando
Ace#tar se mostrar la sig#iente ventanaE
Posteriormente se mostrar la ventana del res#ltado del clc#lo del rea8
Objeto de control 3Label
Un ob&eto de control 'Label $ermite dib#&ar en el <orm#lario #na eti>#eta( entendiBndose
como eti>#eta #na e*$resin esttica >#e se >#iere colocar8 )ambiBn es #sado $ara
mostrar los res#ltados de #n $roceso8
Propiedades ms usadas:
)e*tE Contiene el valor >#e se vis#ali=ar en el <orm#lario8
+ontE Permite establecer el ti$o de letra de la e*$resin a mostrar en el <orm#lario8
-orderE Para establecer el ti$o de borde de la eti>#eta8
?nabledE Para habilitar o inhabilitar el #so del ob&eto de control8
Objeto de control 3Te=t9ield
Ing8 Mart9n Salcedo :#i;ones 2!
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Un ob&eto de control ')e*t+ield $ermite dib#&ar en el <orm#lario #n c#adro de te*to( es
decir( #na ca&a >#e $ermite la introd#ccin de #n dato o valor8 ?ste ob&eto es #tili=ado $ara
el ingreso de datos8
Propiedades ms usadas:
)e*tE Contiene el valor o dato introd#cido en el c#adro de te*to8
+ontE Permite establecer el ti$o de letra del te*to en la ca&a8
-orderE Para establecer el ti$o de borde del c#adro de te*to8
?nabledE Para habilitar o inhabilitar el #so del ob&eto de control8
,/todos ms usados:
get)e*t@AE Permite obtener el te*to introd#cido en el c#adro de te*to8
set)e*t@AE Permite colocar #n te*to en el ob&eto ')e*t+ield8
re>#est+oc#s@AE $ermite asignar el c#rsor al ob&eto de control
Objeto de control 32utton
Un ob&eto de control '-#tton $ermite dib#&ar en el <orm#lario #n ob&eto >#e contiene #n
$roceso a e&ec#tar8 Se #tili=a comGnmente $ara llevar a cabo $rocesos es$ec9<icos segGn
la nat#rale=a de la a$licacin8
Propiedades ms usadas:
)e*tE Contiene el valor o dato introd#cido en el c#adro de te*to8
+ontE Permite establecer el ti$o de letra del te*to en la ca&a8
?nabledE Para habilitar o inhabilitar el #so del ob&eto de control8
74ento ms usado:
ActionPer<ormedE ?ste evento se lleva a cabo c#ando el #s#ario da clic sobre el
ob&eto de control '-#tton8
Una aplicaci%n usando los objetos de control
Ing8 Mart9n Salcedo :#i;ones 22
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Ahora $rocedamos a desarrollar la misma a$licacin #sando como inter<ace #n <orm#lario
, los ob&etos de control antes mencionado8
$oluci%n:
Seleccionamos el $a>#ete e&ercicios , damos clic botn derecho del mo#se ,
elegimos la o$cin New , $osteriormente JFrameForm8
Se m#estra la ventana New JFrame Form , colocamos en Class Name el nombre
del <orm#larioE 8rmAreaTrian0ulo8
Ing8 Mart9n Salcedo :#i;ones 23
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
?n esta ventana se observa >#e la clase denominada frmArea'rian"&lo generar
#n archivo de e*tensin 8&ava denominado frmAreaTriangulo >#e se almacenar
dentro de la car$eta ejercicios , $ertenecer al $a>#ete e&ercicios8
Al momento de dar clic en el botn de comando Finish se vis#ali=ar el entorno de
desarrollo Net-eans , al lado derecho se m#estra la $aleta de los ob&etos de
control @S7ing ControlsA8
Ing8 Mart9n Salcedo :#i;ones 24
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Sobre el dise;o del <orm#lario damos clic botn derecho , seleccionamos (et
)ayo&t , $osteriormente Absol&te)ayo&t8
?s necesario #sar Absol#teLa,o#t $ara >#e $ermita dib#&ar los ob&etos de control
Ing8 Mart9n Salcedo :#i;ones 25
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
en el l#gar donde #no >#iere en el <orm#lario8
Ahora $rocedamos a colocar #n ob&eto 'Label seleccionando de la $aleta S7ing
Controls Label , lo arrastramos hacia el dise;o del <orm#lario8
Contin#amos el dise;o del <orm#lario( >#edando Bste de la sig#iente maneraE
Ing8 Mart9n Salcedo :#i;ones 26
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Ahora $rocedamos a #sar a cambiar los valores de las $ro$iedades de los ob&etos
de control en la ventana de $ro$iedadesE
Ob&eto de Control Pro$iedad Valor de la Pro$iedad
'Label4 )e*t -AS?E
'Label. )e*t AL)URAE
'Label" )e*t ?l rea del )ring#lo esE
')e*t+ield4 )e*t !ac"o o limpiar#
')e*t+ield. )e*t !ac"o o limpiar#
')e*t+ield" )e*t !ac"o o limpiar#
'-#tton4 )e*t CALCULAR
'-#tton. )e*t LIMPIAR
'-#tton" )e*t C?RRAR
L#ego de a$licar los cambios en los valores de $ro$iedades el dise;o del <orm#lario
debe >#edar de la sig#iente maneraE
?s necesario darle #n nombre $ro$io a los ob&etos de control , sobre todo a
a>#ellos >#e intervienen en la lgica de la $rogramacin8 Seleccionamos el ob&eto
de control ')e*t+ield4 , damos clic con el botn derecho del mo#se , se vis#ali=ar
#n menG <lotante , seleccionamos !han"e *ariable Name8
Ing8 Mart9n Salcedo :#i;ones 27
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Colocamos como nombre al ob&eto 'te*t+ield4E t=t2ase
Contin#amos con los ob&etos de control sig#ientesE
Ob&eto de Control Nombre
')e*t+ield. t*tAlt#ra
')e*t+ield" t*tArea
Ing8 Mart9n Salcedo :#i;ones 28
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
'-#tton4 btnCalc#lar
'-#tton. btnLim$iar
'-#tton" btnCerrar
Ahora $rocedamos a $rogramar en los botones de comando8
?n el botn CALCULAR @btnCalc#larA al darle doble clic , escribir el sig#iente
cdigoE @lo escrito en a=#lA
private void btn3alcularAction+er4ormedjava.awt.event.Action'vent evt$
{
int base( altura;
double area;
base)%nteger.parse%nttxt5ase.getText$$;
altura)%nteger.parse%nttxtAltura.getText$$;
area)base*altura//;
txtArea.setText!tring.value&4area$$;
2
Una ve= declaradas las variables de memoria( a la variable base se le asigna el
valor introd#cido en el c#adro de te*to t=t2ase> ?l mBtodo "et'ext+, $ermite
obtener el dato introd#cido , con el mBtodo #arse-nt de la clase Integer es
convertido a n#mBrico entero8 Se hace lo mismo $ara la variable alt#ra8 Para
mostrar el clc#lo de rea se #tili=a el mBtodo set)e*t del c#adro de te*to t*tArea
>#e $ermite vis#ali=ar el contenido de la variable area> A la variable se le a$lica el
mBtodo val#eO< de la clase String $ara convertir el dato rea en cadena de
caracteres8
?n el botn LIMPIAR @btnLim$iarA l#ego de darle doble clic escribimos el sig#iente
cdigoE @lo escrito en a=#lA
private void btn6impiarAction+er4ormedjava.awt.event.Action'vent evt$
{
txt5ase.setText--$;
txtAltura.setText--$;
txtArea.setText--$;
txt5ase.re7uest8ocus$;
2
Se lim$ian los c#adros de te*tos a travBs del mBtodo set)e*t@A , con el mBtodo
Ing8 Mart9n Salcedo :#i;ones 2
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
re>#est+oc#s@A se $asa el c#rsor al ob&eto de control t*tArea8
?n el botn C?RRAR @btnCerrarA l#ego de darle doble clic( escribimos el sig#iente
cdigoE @lo escrito en a=#lA
private void btn3errarAction+er4ormedjava.awt.event.Action'vent evt$
{
dispose$;
2
?l mBtodo dis#ose+, $ermite descargar el <orm#lario , terminar la e&ec#cin de la
a$licacin8
Procedemos a e&ec#tar la a$licacin seleccionado <rmArea)riang#lo , al dar clic
botn derecho elegimos %&n File8
Se m#estra el <orm#lario dise;ado en eta$a de e&ec#cin8
Ing8 Mart9n Salcedo :#i;ones 3"
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Podemos observar >#e el <orm#lario sale con los ob&etos de control cercano a los
bordes del <orm#lario , el mismo <orm#lario se vis#ali=a $egado en la $arte s#$erior
i=>#ierda de la $antalla del com$#tador8 Vamos a $roceder a corregir estos
de<ectos agregando dos l9neas de cdigo en el mBtodo constr#ctor de la clase
<rmArea)riang#lo8 @escribe lo >#e est en a=#lA
public class 4rmAreaTriangulo extends javax.swing.*8rame
{
/** 3reates new 4orm 4rmAreaTriangulo */
public 4rmAreaTriangulo$
{
init3omponents$;
set!i9e:;;(/<;$;
set6ocation/<;(/<;$;
2
?l mBtodo setSi=e@A $ermite establecer el tama;o del <orm#lario , el mBtodo
setLocation@A $ermite #bicar el <orm#lario dentro de la $antalla8 Los mBtodos antes
mencionados $ertenecen al <orm#lario <rmArea)riabg#lo8 Otros mBtodos del
<orm#lario se vern ms adelante8
Procedemos n#evamente a e&ec#tar el <orm#lario <rmArea)riang#lo , se mostrar
de la sig#iente maneraE
Ing8 Mart9n Salcedo :#i;ones 3!
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
?n la sig#iente sesin conoceremos ms ob&etos de control , seg#iremos traba&ando con
lo a$rendido en esta sesin8
Ing8 Mart9n Salcedo :#i;ones 32
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
U$O )7 LO$ O237TO$ 3(A)IO2UTTO' <
3C?7C@2O;
Objeto de Control 3(adio2utton
Un ob&eto de control 'Radio-#tton $ermite dib#&ar en el <orm#lario #na o$cin >#e $#ede
ser seleccionada( es decir( es #n ob&eto >#e de<ine #na o$cin o alternativa $ara ser
elegida8 ?ste ob&eto debe mostrarse ms de #na ve= en el dise;o del <orm#lario $ara >#e
e*ista la alternativa de seleccionar #na o$cin de #n gr#$o de o$ciones8 Los ob&etos son
m#t#amente e*cl#,entes con res$eto a la seleccin8 Se tiene la sig#iente <ig#raE
?n la <ig#ra anterior se observan tres ob&etos 'Radio-#tton , $ara $oder seleccionar sola
#na alternativa se tendr >#e #sar el ob&eto -#ttonGro#$ >#e es #n elemento >#e no se
llega a dib#&ar en el <orm#lario $ero $ermite agr#$ar ob&etos 'Radio-#tton , #na ve=
agr#$ados $ermite la seleccin de #na o$cin c#ando la a$licacin se enc#entre en
e&ec#cin8 ?n las dos a$licaciones >#e veremos ms adelante se har hinca$iB en este
as#nto8
Ing8 Mart9n Salcedo :#i;ones 33
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Propiedades ms usadas:
)e*tE Permite establecer la e*$resin de la o$cin8
+ontE Permite establecer el ti$o de letra en el ob&eto de control8
?nabledE Para habilitar o inhabilitar el #so del ob&eto de control8
,/todo ms usado:
isSelected@AE retorna el valor de verdadero si el ob&eto se enc#entra seleccionado ,
<also en caso contrario8
Objeto de Control 3CAec52o=
Un ob&eto de control 'Chec/-o* $ermite dib#&ar en el <orm#lario #na o$cin >#e $#ede
ser seleccionada( es decir( es #n ob&eto >#e de<ine #na o$cin o alternativa $ara ser
elegida8 La di<erencia con res$ecto al ob&eto de control 'Radio-#tton es >#e si se tienen
dos o ms ob&etos 'Chec/-o* se $#ede seleccionar ms de #na o$cin o sim$lemente no
seleccionar ning#na( $or lo >#e no son m#t#amente e*cl#,entes8 Se tiene la sig#iente
<ig#raE
?n la <ig#ra anterior se observa #n ob&eto 'Chec/-o* >#e e*$resa como o$cin Contado(
si es seleccionado signi<ica >#e la <orma de $ago es al contado , si se de&a como no
seleccionado signi<ica >#e la <orma de $ago no es al contado $or lo >#e se $#ede as#mir
>#e es al crBdito8
Propiedades ms usadas:
)e*tE Permite establecer la e*$resin de la o$cin8
+ontE Permite establecer el ti$o de letra en el ob&eto de control8
?nabledE Para habilitar o inhabilitar el #so del ob&eto de control8
,/todo ms usado:
isSelected@AE retorna el valor de verdadero si el ob&eto se enc#entra seleccionado ,
<also en caso contrario8
Aplicaci%n "
Vamos a constr#ir #na a$licacin en entorno vis#al >#e $ermita ingresar del costo de #n
Ing8 Mart9n Salcedo :#i;ones 34
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
arte<acto( del ti$o de arte<acto , la <orma de $ago( $ara calc#lar lo sig#ienteE
a# Si el $ago es al contado ha, #n desc#ento del 1K del costo del arte<acto si el ti$o
de arte<acto es A#dio( 3K si es Video , 2K si es L9nea -lanca8
b# Si el $ago es al crBdito ha, #n incremento del 5K sobre el costo del arte<acto si es
el ti$o de arte<acto es A#dio( 0K si es Video , 4!K si es L9nea -lanca8
c# ?l monto del IGV es del 40K sobre el costo del arte<acto l#ego de a$licar el
desc#ento o el incremento8
d# ?l monto a $agar >#e es el costo del arte<acto @descontado o incrementadoA ms el
monto del IGV8
$oluci%n:
Procedamos a crear #n $ro,ecto denominado Aplicaciones dentro de #na car$eta
llamada Practicas , como clase A#licaci.n/ >#e $ertenece al $a>#ete de
ejem#los8 L#ego damos clic en el botn de comando Finish8
Seleccionamos la car$eta de e&em$los( damos clic con el botn derecho del mo#se
, elegimos la o$cin New , $osteriormente JFrameForm8
Ing8 Mart9n Salcedo :#i;ones 35
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
A contin#acin( se vis#ali=a la sig#iente ventana , cambiamos el nombre de la
clase indicado $or la <lechaE
Ahora $rocedemos a dise;ar el <orm#lario( donde se har Bn<asis en el mane&o de
los n#evos ob&etos de control8 No olvidemos >#e cada ve= >#e #semos #n
<orm#lario s# )ayo&t debe ser cambiado a Absol&te )ayo&t como se a$recia en la
sig#iente <ig#raE
Ing8 Mart9n Salcedo :#i;ones 36
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
6ib#&amos como eti>#eta @#sando #n 'LabelA la e*$resinE CCosto del Arte<actoD ,
el c#adro de te*to @Usando #n ')e*t+ieldA8 )ambiBn a travBs de #na eti>#eta
colocamos la e*$resin C)i$o de Arte<actoD , l#ego " ob&etos 'Radio-#tton8 Los
ob&etos 'Radio-#tton deben e*$resar A#dio( Video , L9nea -lanca8 6ebemos
recordar >#e se tendr >#e hacer #so de la $ro$iedad )e*t $ara cambiar las
e*$resiones8
6e la $aleta S7ingControls seleccionamos -#ttonGro#$ , lo arrastramos hacia el
<orm#lario8 ?sto ocasionar >#e se cree #n ob&eto -#ttonGro#$4 tal como se
a$recia en el navegador @lado i=>#ierdo del dise;o del <orm#larioA8
Ing8 Mart9n Salcedo :#i;ones 37
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Seleccionamos el ob&eto 'Radio-#tton re<erido a A#dio , l#ego b#scamos en la
ventana de $ro$iedades( la $ro$iedad b&tton"ro&# , l#ego elegimos
b&tton"ro&#/
Lo mismo hacemos $ara los ti$os de arte<actos Video , L9nea -lanca8 Por lo tanto(
los tres ob&etos 'Radio-#tton deben $ertenecer a b&tton"ro&#/8 Si $retendemos
en estos momentos e&ec#tar el <orm#lario $odremos seleccionar #no de los tres
ti$os de arte<actos8
Ing8 Mart9n Salcedo :#i;ones 38
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
A contin#acin( agregamos #n ob&eto 'Chec/-o* $ara indicar la <orma de $ago >#e
solo $#ede ser de dos $osibilidadesE Contado o CrBdito8 Seleccionado signi<ica al
Contado( no seleccionado signi<ica al crBdito8 Agregamos los dems ob&etos de
control >#e se vis#ali=a en el dise;o del <orm#lario , >#e <#eron est#diados en la
sesin anterior8 ?n el dise;o del <orm#lario se indica los nombres de los ob&etos ,
debemos recordar >#e $ara asignar #n nombre a #n ob&eto de control ha, >#e
seleccionar al ob&eto , dando clic con el botn derecho del mo#se se $rocede a
seleccionar la o$cin !han"e *ariable Name
Procedamos a $rogramar en los botones de comandoE
?n el botn de comando CALCULAR @btnCalc#larA( al darle doble clic( escribimos el
sig#iente cdigoE @lo escrito en a=#lA
private void btn3alcularAction+er4ormedjava.awt.event.Action'vent evt$
{
double costo( dcto);( incre);( igv( mpagar;
costo),ouble.parse,oubletxt3osto.getText$$;
i4 chk3ontado.is!elected$$
{
i4 rbAudio.is!elected$$
dcto)costo*;.;=;
i4 rb>ideo.is!elected$$
dcto)costo*;.;?;
Ing8 Mart9n Salcedo :#i;ones 3
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
i4 rb6inea.is!elected$$
dcto)costo*;.;<;
2
else
{
i4 rbAudio.is!elected$$
incre)costo*;.;@;
i4 rb>ideo.is!elected$$
incre)costo*;.;A;
i4 rb6inea.is!elected$$
incre)costo*;.B;
2
igv)costoCdcto1incre$*;.BA;
mpagar)costoCdcto1incre$1igv;
txt,cto.setText!tring.value&4dcto$$;
txt%ncre.setText!tring.value&4incre$$;
txt%gv.setText!tring.value&4igv$$;
txt0+agar.setText!tring.value&4mpagar$$;
2
Una ve= declaradas las variables de memoria( en la variable costo se asigna el
valor introd#cido en el c#adro de te*to txt!osto gracias al mBtodo "et'ext+, >#e
logra obtener el dato colocado en el ob&eto de control8 Con la sentencia i< se evalGa
si est seleccionada la o$cin al contado ,( si es as9( se $rocede a eval#ar c#l de
los ti$os de arte<actos est seleccionado $ara a$licar el clc#lo del desc#ento >#e
ser asignando a la variable de memoria dcto8 ?n caso >#e no estB seleccionada
la o$cin al Contado entonces se as#me >#e la <orma de $ago es al crBdito , se
$rocede a eval#ar c#l de los ti$os de arte<actos est seleccionado $ara a$licar el
clc#lo del incremento >#e ser asignado a la variable incre8 A contin#acin( se
calc#la el IGV , el monto a $agar8 L#ego( los ob&etos de control txt0cto( txt-ncre(
txt-" , txt$Pa"ar reciben valores a travBs de las variables de memoria dcto(
incre( i04 , mpa0ar en s#s c#adros de te*tos gracias al mBtodo set'ext+,( $or
s#$#esto $reviamente se tiene >#e convertir a cadena de te*to los valores
n#mBricos de las variables #sando el mBtodo al&e1f+, de la clase (trin"8
?n el botn de comando -ORRAR @btn-orrarA( l#ego de darle doble clic(
escribimos el sig#iente cdigoE @lo escrito en a=#lA
private void btn5orrarAction+er4ormedjava.awt.event.Action'vent evt$
{
txt3osto.setTextDE$;
txt,cto.setTextDE$;
txt%ncre.setTextDE$;
txt%gv.setTextDE$;
txt0+agar.setTextDE$;
rbAudio.set!elected4alse$;
rb>ideo.set!elected4alse$;
Ing8 Mart9n Salcedo :#i;ones 4"
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
rb6inea.set!elected4alse$;
chk3ontado.set!elected4alse$;
txt3osto.re7uest8ocus$;
2
Se lim$ian los c#adros de te*tos con slo $oner CD en el mBtodo set'ext+, , a los
ob&etos botn de radio @'Radio-#ttonA , el ob&eto de ca&a veri<icacin @'Chec/-o*A
se les a$lica el mBtodo setSelected@A $ara lograr >#itar la seleccin de estos
ob&etos8 Lo ms im$ortante es >#e los c#adros de te*tos estBn lim$ios $ara $oder
$ermitir el ingreso de n#evos datos8
?n el botn de comando C?RRAR @btnCerrarA( l#ego de darle doble clic(
escribimos el sig#iente cdigoE @lo escrito en a=#lA
private void btn3errarAction+er4ormedjava.awt.event.Action'vent evt$
{
dispose$;
2
?l mBtodo dis#ose+, $ermite descargar el <orm#lario , terminar la e&ec#cin de la
a$licacin8
L#ego $rocedemos a e&ec#tar la a$licacin seleccionando <rmA$licacion4 en la
$gina o $esta;a Pro,ects @se enc#entra al lado i=>#ierdo del dise;o del
<orm#larioA , al dar clic botn derecho elegimos %&n File8
Aplicaci%n B
Vamos a constr#ir #na a$licacin en entorno vis#al >#e $ermita calc#lar la boni<icacin( el
desc#ento , el s#eldo neto de #n traba&ador dado el ingreso del s#eldo bsico( el grado de
instr#ccin( la condicin laboral e indicando si tiene vivienda e hi&os ba&o las sig#ientes
consideracionesE
aA Por el grado de instr#ccin $ercibe #na boni<icacin de 2K del s#eldo bsico si el
grado es Sec#ndaria( 4.K del s#eldo bsico si es Universitaria , 43K del s#eldo
bsico si es maestr9a8
bA Por la condicin laboral $ercibe #na boni<icacin del %K del s#eldo bsico si es
contratado( 4!K del s#eldo bsico si es nombrado , del 2K del s#eldo bsico si es
de servicios no $ersonales8
Ing8 Mart9n Salcedo :#i;ones 4!
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
cA Si tiene vivienda no $ercibe ning#na boni<icacin $ero si no tiene vivienda $ercibe
#na boni<icacin del "K del s#eldo bsico
dA Si tiene hi&os $ercibe #na boni<icacin del 1K del s#eldo bsico8
eA Se le a$lica 44K del s#eldo br#to @s#eldo bsico L boni<icacionesA $or el $ago de la
A+P , esto constit#,e #n desc#ento en s#s haberes8
<A ?l s#eldo neto es ig#al al s#eldo br#to menos el desc#ento8
$oluci%n:
Seleccionamos la car$eta de e&em$los( damos clic con el botn derecho del mo#se
, elegimos la o$cin New , $osteriormente JFrameForm8
A contin#acin( se vis#ali=a la ventana de Ne7 '+rame +orm donde colocaremos
como Class name @nombre de la claseA frmA#licacion2 , l#ego daremos clic en el
botn de comando Finish8
Ahora $rocedemos a dise;ar el <orm#lario( donde se har Bn<asis en el mane&o de
los n#evos ob&etos de control8 No olvidemos >#e cada ve= >#e #semos #n
<orm#lario s# )ayo&t debe ser cambiado a Absol&te )ayo&t como se a$recia en la
sig#iente <ig#raE
Ing8 Mart9n Salcedo :#i;ones 42
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
6ib#&amos como eti>#eta @#sando #n 'LabelA la e*$resinE C$U7L)O 2A$ICO:D ,
el c#adro de te*to @Usando #n ')e*t+ieldA8 )ambiBn a travBs de #na eti>#eta
@'LabelA colocamos la e*$resin C+rado de Instrucci%n:D , con " ob&etos
'Radio-#tton debemos e*$resar C$ecundariaD( CUni4ersitariaD , C,aestraD
haciendo #so de la $ro$iedad )e*t de los ob&etos 'Radio-#tton $ara cambiar las
e*$resiones8 Adems con otra eti>#eta @'LabelA colocamos la e*$resin
CCondici%n Laboral:D , con " ob&etos 'Radio-#tton debemos e*$resar
CContratadoD( C'ombradoD , C$er4> 'o Pers>D8 6ado >#e tenemos >#e seleccionar
#na o$cin $ara Grado de Instr#ccin , otra o$cin $ara la Condicin Laboral ser
necesario crear . ob&etos 2utton+roup8 Recordemos >#e se arrastra desde la
$aleta en dos instantes el ob&eto 2utton+roup8
Ing8 Mart9n Salcedo :#i;ones 43
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Usaremos $ara las o$ciones de Grado de Instr#ccin el ob&eto b&tton2ro&#/ ,
$ara las o$ciones de Condicin Laboral b&tton2ro&#28 ?sto $ermitir $oder
seleccionar #na o$cin de las tres alternativas8 Para es necesario seleccionar cada
ob&eto 'Radio-#tton , #sar en la ventana de $ro$iedades( la $ro$iedad
b&tton2ro&#.
Contin#amos con el dise;o del <orm#lario agregando los dems ob&etos de control
>#e se vis#ali=an en el dise;o del <orm#lario , >#e <#eron est#diados en la sesin
anterior8 ?n el dise;o del <orm#lario se indican los nombres de los ob&etos ,
Ing8 Mart9n Salcedo :#i;ones 44
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
debemos recordar >#e $ara asignar #n nombre a #n ob&eto de control ha, >#e
seleccionar al ob&eto , dando clic al botn derecho del mo#se se $rocede a
seleccionar la o$cin !han"e *ariable Name8
Procedamos a $rogramar en los botones de comandoE
?n el botn de comando CALCULAR @btnCalc#larA( l#ego de darle doble clic(
escribimos el sig#iente cdigoE @lo escrito en a=#lA
private void btn3alcularAction+er4ormedjava.awt.event.Action'vent evt$
{
double boni);.;( sb( dcto( sn( sbruto;
sb),ouble.parse,oubletxt!5.getText$$;
i4 rb!ec.is!elected$$
boni)sb*;.;<;
i4 rbFni.is!elected$$
boni)sb*;.B/;
i4 rb0ae.is!elected$$
boni)sb*;.B?;
i4 rb3on.is!elected$$
boni)boni1sb*;.;:;
i4 rbGom.is!elected$$
boni)boni1sb*;.B;
i4 rb!G+.is!elected$$
boni)boni1sb*;.;<;
i4 chk!in>.is!elected$$$
boni)boni1sb*;.;H;
i4 chkIij.is!elected$$
boni)boni1sb*;.;=;
sbruto)sb1boni;
dcto)sbruto*;.BB;
Ing8 Mart9n Salcedo :#i;ones 45
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
sn)sbrutoCdcto;
txt5oni.setText!tring.value&4boni$$;
txt,cto.setText!tring.value&4dcto$$;
txt!G.setText!tring.value&4sn$$;
2
Una ve= declaradas las variables de memoria( en la variable sb se asigna el valor
introd#cido en el c#adro de te*to txt(B gracias al mBtodo "et'ext+, >#e logra
obtener el dato colocado en el ob&eto de control8 Con la sentencia i< se evalGa si
est seleccionada la o$cin $ecundaria , si es as9 se $rocede a calc#lar la
boni<icacin8 6e ig#al manera se hace $ara Uni4ersitaria , $ara ,aestra8 Masta
a>#9 se calc#la la $rimera boni<icacin $or el conce$to de Grado de Instr#ccin8
Ahora viene #na seg#nda boni<icacin $or el conce$to de Condicin Laboral $ara lo
c#al la variable de memoria boni se com$orta como variable ac#m#lativa( as9 $or
e&em$lo( si el traba&ador es de condicin Contratado $ara calc#lar la boni<icacin
debo #sar la instr#ccin boniNboniLsbI!8!%J donde la variable boni contiene el
clc#lo $or Grado de instr#ccin , se >#iere s#mar ahora $or el conce$to de
Condicin Laboral8 Lo mismo se har con las otras o$ciones , se seg#ir
ac#m#lando incl#sive con las o$ciones de<inidas con el ob&eto 'Chec/-o* @Casado
e Mi&osA A contin#acin se calc#la el s#eldo br#to( el desc#ento , el s#eldo neto8
L#ego los ob&etos de control txtBoni( txt0cto , txt(N reciben valores a travBs de
las variables de memoria boni( dcto , sn en s#s c#adros de te*tos gracias al
mBtodo set'ext+,( $or s#$#esto $reviamente se tiene >#e convertir a cadena de
te*to los valores n#mBricos de las variables #sando el mBtodo al&e1f+, de la
clase (trin"8
?n el botn de comando -ORRAR @btn-orrarA( l#ego de darle doble clic(
escribimos el sig#iente cdigoE @lo escrito en a=#lA
private void btn5orrarAction+er4ormedjava.awt.event.Action'vent evt$
{
txt!G.setTextDE$;
txt5oni.setTextDE$;
txt,cto.setTextDE$;
txt!G.setTextDE$;
txt3osto.re7uest8ocus$;
2
Se lim$ian los c#adros de te*tos con solo $oner CD en el mBtodo set'ext+,. Lo ms
im$ortante es >#e los c#adros de te*tos estBn lim$ios $ara $oder $ermitir el ingreso
de n#evos datos8
Ing8 Mart9n Salcedo :#i;ones 46
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
?n el botn de comando C?RRAR @btnCerrarA( l#ego de darle doble clic(
escribimos el sig#iente cdigoE @lo escrito en a=#lA
private void btn3errarAction+er4ormedjava.awt.event.Action'vent evt$
{
dispose$;
2
?l mBtodo dis#ose+, $ermite descargar el <orm#lario , terminar la e&ec#cin de la
a$licacin8
L#ego $rocedemos a e&ec#tar la a$licacin seleccionando <rmA$licacion4 en la
$gina o $esta;a Pro,ects @se enc#entra al lado i=>#ierdo del dise;o del
<orm#larioA , al dar clic botn derecho elegimos %&n File8
?n el sig#iente tema conoceremos a otro ob&eto de control , seg#iremos traba&ando con lo
a$rendido con las sesiones . , "8
AUTO7#ALUACIO'
aC (esponde a las si0uientes pre0untas:
48 ?l archivo de e*tensin &ava contiene el dise;o de #n <orm#lario( el mismo >#e se
almacena dentro de #n $a>#ete @verdadero o <alsoA OOOOOOOOOOOOOOOOOOOOOO
.8 ?l #so del ob&eto 'O$tionPane es necesario el $a>#ete OOOOOOOOOOOOOOOOOO
"8 Los ob&etos de control $erteneciente al $a>#ete s7ing controls sonE
a8 &ava8io b8 'b#tton c8 ')abbedPane d8'Radio-#tton
%8 MBtodo >#e $ermite conocer si #n ob&eto 'Radio-#ton se enc#entra seleccionado( se
denominaE OOOOOOOOOOOOOOOOOOOOOO
bC )esarrolla las si0uientes aplicaciones:
48 Constr#,e #na a$licacin >#e $ermita el ingreso de " nGmeros , calc#le el nGmero
medio @es a>#el >#e no es el ma,or ni el menor de los " nGmerosA
.8 ?labora #na a$licacin >#e $ermita seleccionar #n ti$o de moneda e*tran&era , dado
#na cantidad en soles haga la conversin res$ectiva en la moneda e*tran&era
seleccionada8 6ise;a tG mismo t# <orm#lario8
Ing8 Mart9n Salcedo :#i;ones 47
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
CAPITULO II
OBJETOS DE CONTROL PARA LISTA Y CUADRICULA
DE DATOS
Ing8 Mart9n Salcedo :#i;ones 48
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
U$O )7L O237TO 3LI$T
Objeto de Control 3List
Un ob&eto de control 'List $ermite dib#&ar en el <orm#lario #na ca&a de lista de o$ciones
@9temsA8 C#ando el <orm#lario se enc#entra en la eta$a de e&ec#cin se $#eden
seleccionar s#s 9tems8 Pero $ara traba&ar con este ob&eto es necesario #sar #n ob&eto de
la categor9a de S7ing Containers denominado 'ScrollPane8 ?l ob&eto 'ScrollPane $ermite
hacer >#e el ob&eto 'List tenga barra de des$la=amiento >#e es necesaria c#ando el
nGmero de 9tems es grande , no $#ede ser visto a sim$le vista en el ob&eto de control
'List8 Cabe se;alar >#e los ob&etos >#e $ertenecen a S7ing Containers sern est#diados
con ma,or detalle en la seg#nda #nidad de a$rendi=a&e del c#rso( $ero el #so de 'List nos
obliga #tili=ar el ob&eto contenedor 'ScrollPane8
Propiedades ms usadas:
ModelE Permite establecer los 9tems de la ca&a de lista8
+ontE Permite establecer el ti$o de letra en el ob&eto de control8
?nabledE Para habilitar o inhabilitar el #so del ob&eto de control8
Ing8 Mart9n Salcedo :#i;ones 4
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
,/todos ms usados:
setModel@AE Permite vinc#lar #na variable ob&eto de ti$o model a #n ob&eto de
control 'List8
getSelectedVal#e@AE Contiene el 9tem seleccionado de la ca&a de lista8
getSelectedInde*@AE Contiene el valor del 9ndice activo o 9ndice act#al del 9tem
seleccionado de la ca&a de lista8 ?l 9ndice es #n valor n#mBrico correlativo no visible
>#e va desde !8
74ento ms usado:
Val#eChanged@AE S#cede c#ando el #s#ario selecciona #n 9tem de la ca&a de lista8
Aplicaci%n
Constr#ir #na a$licacin >#e $ermita el ingreso del nombre del al#mno , $oder
Ing8 Mart9n Salcedo :#i;ones 5"
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
seleccionar #no o varios c#rsos >#e Bste >#isiera llevar8 ?l $ago $or los c#rsos
seleccionados $odr ser $agado al contado o al crBdito8 Si el $ago es al contado ha, #n
desc#ento del 2K del costo total de los c#rsos a llevar , si el $ago es al crBdito se $agar
#n incremento del 5K del costo total8 La a$licacin debe mostrar el desc#ento( el
incremento , el monto a $agar $or los seleccionados8
$oluci%n:
Iniciamos con la creacin de #n $ro,ecto denominado A$licaciones8 Seleccionamos
del menG( la o$cin +ile , l#ego Ne7 Pro,ect8 A$arece la ventana de Ne7 Pro,ect
, damos clic en el botn de comando Ne*t8 ?n la ventana New Jaa A##lication
indicamos como nombre de $ro,ecto Aplicaciones creando como $a>#ete
aplicaciones> Al dar clic en el botn de comando Finish nos encontramos con el
entorno de desarrollo8
Seleccionamos el $a>#ete de a$licaciones , al dar clic con el botn derecho del
mo#se elegimos la o$cin Ne7 , l#ego '+rame+orm8
Ing8 Mart9n Salcedo :#i;ones 5!
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
A contin#acin se m#estra la ventana Ne7 '+rame +orm >#e debe >#edar as9E
No olvidemos de dar clic botn derecho del mo#se sobre el <orm#lario , establecer
Ing8 Mart9n Salcedo :#i;ones 52
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Absol&te )ayo&t en (et )ayo&t8
Procedemos a colocar #n ob&eto 'Label con la e*$resin CALUMNOED acom$a;ado
de #n c#adro de te*to @')e*t+ieldA8 L#ego( colocar #n 'Label >#e e*$rese
CSeleccionar C#rsosD , deba&o de esta e*$resin dib#&ar #n ob&eto 'ScrollPane8
?n el ob&eto 'ScrollPane colocamos #n ob&eto 'List , al momento de llevarlo al
Ing8 Mart9n Salcedo :#i;ones 53
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
dise;o del <orm#lario se m#estra de la sig#iente maneraE
L#ego >#eda el ob&eto 'List dentro del ob&eto 'ScrollPane8
Seleccionamos el ob&eto de control 'list4 , en la ventana de $ro$iedades se tiene
#na $ro$iedad llamada model >#e $ermite colocar los 9tems dentro de la ca&a de
lista 'list48
Ing8 Mart9n Salcedo :#i;ones 54
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
L#ego de seleccionar el botn de comando re<erido a la $ro$iedad model se
m#estra la sig#iente ventanaE
Ing8 Mart9n Salcedo :#i;ones 55
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Ingresamos los nombres de los c#rsos tal como se m#estra en la sig#iente
ventanaE
L#ego dar clic en el botn de comando 138
?l dise;o del <orm#lario debe >#edar as9E
L#ego vamos a colocar en el dise;o del <orm#lario otro ob&eto 'ScrollPane &#nto a
Ing8 Mart9n Salcedo :#i;ones 56
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
'List4 $ara l#ego $oner #n ob&eto 'List8 ?n esta lista colocaremos los costos de
cada c#rso8
Adicionalmente $ondremos en el dise;o del <orm#lario dos botones de comando
re<erido a Agregar , ?liminar , &#nto a ellos dos ob&etos 'List( $or s#$#esto
$reviamente debemos #sar dos ob&etos 'ScrollPane8
Ing8 Mart9n Salcedo :#i;ones 57
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Posteriormente agregamos las <ormas de $ago con dos ob&etos 'Radio-#tton( los
botones de comando Calc#lar( Lim$iar , Cerrar8 +inalmente( los ob&etos >#e
mostrarn el desc#ento( el incremento , el monto a $agar $or los c#rsos
seleccionados8 ?l dise;o del <orm#lario debe >#edar as9E
Ing8 Mart9n Salcedo :#i;ones 58
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Ahora bien( si observamos en el dise;o del <orm#lario de las c#atros ob&etos 'List(
dos de ellos ,a tienen 9tems como lo son lstC#rsos , lstCostos8 ?n cambio( los
ob&etos lstC#rsel , lstCos se llenarn en <#ncin a lo seleccionado , agregado con
el botn de comando Agregar8 Por lo tanto( debemos de<inir #n modelo @modelA
$ara a>#ellas listas >#e se llenarn en tiem$o de e&ec#cin8 Por esto debemos
de<inir las variables modelo4 , modelo. como 6e<a#ltListModel@A( como se m#estra
a contin#acin @escribe lo >#e indica las <lechas de color ro&oAE
Para >#e <#ncione correctamente la clase 0efa&lt)ist$odel es necesario agregar
el $a>#ete im$ort &ava*8s7ing8IJ des$#Bs del $a>#ete A$licaciones8
Una ve= de<inidas las variables modelo4 , modelo.( en el m/todo constructor se
debe indicar >#e la variable modelo" es $ara la ca&a de lista lstCursel , la variable
modeloB es $ara la ca&a de lista lstCos( todo esto se $odr hacer con el mBtodo
set,odelDC8 )ambiBn hacemos >#e los botones de comando Agregar , ?liminar se
inhabiliten desde la e&ec#cin de la a$licacin8
-ien( ahora debemos $rogramar sobre el ob&eto lsrC#rsos( $ara >#e el #s#ario al
momento de seleccionar #n c#rso se mar>#e sim#ltneamente el costo , se
habilite el botn de comando Agregar8 Para esto se debe seleccionar #n evento de
la ca&a de lista lstC#rsos llamado Val#eChanged $erteneciente a ListSelection8
Ing8 Mart9n Salcedo :#i;ones 5
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
?n el evento mencionado $rograma lo sig#ienteE
Se declara #na variable entera llamada 9ndice( esta variable recibe el valor del
9ndice del 9tem seleccionado gracias al mBtodo 0et$electedInde=DC8 Por e&em$lo( si
de la ca&a de lista lstCursos est#viera seleccionado Power $uilder( Bste mBtodo
devolver9a el valor de 48 ?l valor ! lo tiene Vis#al -asic( el valor de . lo tiene Vis#al
'ava , as9 s#cesivamente8 Lo >#e se >#iere es seleccionar el 9tem de la ca&a de
lista de lstCostos >#e tenga el mismo 9ndice >#e lstCursos( $ara ello se #sa el
Ing8 Mart9n Salcedo :#i;ones 6"
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
mBtodo set(elected-ndex+indice, $ara dar el mismo 9ndice a la ca&a de lista
lstCostos8 +inalmente( hacemos >#e el botn de comando Agregar se habilite con
el mBtodo setEnabled+,8
A contin#acin( escribimos el sig#iente cdigo en el botn de comando A0re0ar
@slo se escribe lo >#e se;ala la llave de color ro&oAE
A>#9 declaramos dos variables de ti$o %tring llamados curso , costo , las
variables enteras cuenta( i , total8 ?n la variable curso se almacena el c#rso
seleccionado en la lista lstCursos( el mBtodo "et(election*al&e+, trae consigo el
9tem seleccionado $ero lo trae como ob&eto , al $oner +(trin", hacemos >#e se
convierta en cadena $ara >#e $#eda ser asignada a la variable curso8 6e ig#al
manera se hace con la variable costo8 Para agregar #n 9tem a #na ca&a de lista se
#sa el mBtodo addElement $erteneciente al ob&eto variable modelo" o modeloB8
Con la variable cuenta se almacena el total de 9tems >#e ha, en la ca&a de lista
lstCos $ero a travBs de la variable ob&eto modeloB8 Con la sentencia re$etitiva <or
se b#sca e*traer cada #no de los 9tems de la ca&a de lista lstCos e ir s#mando en
cada interaccin $ara $oder encontrar el costo total de los c#rsos seleccionados(
$ara esto #samos el mBtodo elementAt+, >#e dev#elve #n 9tem de #na ca&a de lista
con slo indicar el valor del 9ndice8 +inalmente en el ob&eto t=tTotal se vis#ali=a el
contenido de la variable total e inhabilitamos el botn de comando A0re0ar8
Ahora $rogramamos en la ca&a de lista lstC#rsel el evento *al&e!han"ed c#ando
>#eramos seleccionar #n c#rso $ara l#ego eliminarlo @slo escribe lo >#e se;ala la
Ing8 Mart9n Salcedo :#i;ones 6!
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
llave de color ro&oA8
La idea es la misma >#e se a$lic en la $rogramacin sobre el evento
*al&e!han"ed del ob&eto lstCursos8 La di<erencia est en >#e esta ve= se habilita
el botn de comando 7liminar8
?n el botn de comando ?liminar colocamos la sig#iente $rogramacin @slo se
escribe lo >#e se;ala la llave de color ro&oAE
Lo novedoso de esta $rogramacin es la $resencia del mBtodo remoe+, >#e
elimina #n 9tem de la lista a travBs de la variable ob&eto modelo" modeloB dado
el valor del 9ndice8 Al <inal de la $rogramacin se v#elve a calc#lar el costo total de
los c#rsos seleccionados , se inhabilita el botn de comando 7liminar8
Ahora $rocedemos a $rogramar en el botn de comando Calcular @slo se escribe
lo >#e se;ala la llave de color ro&oAE
Ing8 Mart9n Salcedo :#i;ones 62
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
A contin#acin $rocedemos a $rogramar en el botn de comando Lim$iar @slo se
escribe lo >#e se;ala la llave de color ro&oAE
?n esta $rogramacin( la novedad est en >#e $ara lim$iar totalmente #na ca&a de
lista se hace con el mBtodo clear+, $erteneciente a las variables ob&eto modelo" ,
modeloB( con lo c#al tambiBn se hace la lim$ie=a a los ob&etos lstCursel , lstCos8
)ambiBn( hacemos el #so del mBtodo set(elected-ndex+, dando el valor de 2( ,a
>#e dicho 9ndice no e*iste en la ca&a de lista( lo >#e hace >#e se $ierda lo
seleccionado8
+inalmente $rogramamos en el botn de comando CerrarE
Ing8 Mart9n Salcedo :#i;ones 63
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
?n el sig#iente tema conoceremos a otro ob&eto de control , seg#iremos traba&ando con lo
a$rendido con las sesiones .( " , %8
Ing8 Mart9n Salcedo :#i;ones 64
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
U$O )7L O237TO 3CO,2O2O;
Objeto de Control 3Combo2o=
Un ob&eto de control 'Combo-o* $ermite dib#&ar en el <orm#lario #na lista des$legadle( la
c#al contiene o$ciones @9temsA8 Combo-o* signi<ica Cc#adro combinadoD $or>#e combina
#n c#adro de te*to con #na ca&a de lista( es como si <#era #n ')e*t+ield me=clado o
combinado con #n 'List8 )iene la $artic#laridad de >#e se debe seleccionar #n botn de
comando de des$lieg#e , l#ego seleccionar la o$cin o 9tem8
Una ve= dado clic en el botn de des$lieg#e se m#estra las o$ciones o 9tems del ob&eto
Ing8 Mart9n Salcedo :#i;ones 65
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Propiedades ms usadas:
ModelE Permite establecer los 9tems de la ca&a de lista8
+ontE Permite establecer el ti$o de letra en el ob&eto de control8
?nabledE Para habilitar o inhabilitar el #so del ob&eto de control8
getSelectedInde*E Contiene el 9ndice del 9tem seleccionado
setSelectedItemE Contiene el 9tem seleccionado
,/todos ms usados:
setModel@AE Permite vinc#lar #na variable ob&eto de ti$o model a #n ob&eto de
control 'List8
getItemAt@AE 6ev#elve el 9tem >#e est en el 9ndice >#e se es$eci<ica8
getSelectedInde*@AE Contiene el valor del 9ndice activo o 9ndice act#al del 9tem
seleccionado de la ca&a de lista8 ?l 9ndice es #n valor n#mBrico correlativo no visible
>#e va desde !8
74ento ms usado:
Val#eChanged@AE S#cede c#ando el #s#ario selecciona #n 9tem de la ca&a de lista8
Aplicaci%n
Constr#ir #na a$licacin >#e $ermita el ingreso del nombre del al#mno , $oder
seleccionar de #na lista des$legadle #na categor9a de los c#rsos8 Al momento de
seleccionar la categor9a se debe mostrar los c#rsos con s#s res$ectivos costos en las
ca&as de listas @los 'List >#e se m#estran al lado i=>#ierdo del dise;o del <orm#larioA8 Una
ve= vis#ali=ado los c#rsos el #s#ario $#ede seleccionar , agregar en las ca&as de listas
@los 'List >#e se m#estran al lado derecho del dise;o del <orm#larioA los c#rsos solicitados
$or el al#mno8 ?l $ago $or el servicio de ense;an=a se establece de la sig#iente maneraE
Ing8 Mart9n Salcedo :#i;ones 66
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
?*iste #n $ago $or matr9c#la del 3!K del costo total @s#ma de los costos de los
c#rsos escogidosA siem$re , c#ando >#iera el al#mno llevar #n solo c#rso( 1!K del
costo total si lleva dos c#rsos , 2!K del costo total si lleva " o ms c#rsos8
?l costo total tiene #n desc#ento del 4!K si la <orma de $ago es al contado , #n
incremento del 4!K si es al crBdito8
?*iste #n $ago mens#al c#ando la <orma de $ago es al crBdito , es e>#ivalente al
costo total incrementado dividido en % c#otas8
$oluci%n:
Usars el mismo $ro,ecto #tili=ado en la sesin anterior , slo agregars #n
<orm#lario @'+rameA8
Inmediatamente se m#estra la sig#iente ventanaE
L#ego dar clic en el botn de comando Finish8
Ing8 Mart9n Salcedo :#i;ones 67
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
A contin#acin se m#estra el entorno de desarrollo de Net-eans , no olvides de
dar clic en el botn derecho del mo#se sobre el <orm#lario , establece Absol&te
)ayo&t en (et )ayo&t8
Procede a colocar #n ob&eto 'Label con la e*$resin CALUMNOED acom$a;ado de
#n c#adro de te*to @')e*t+ieldA8 Por deba&o de CALUMNOED colocar #n ob&eto 'Label
>#e e*$rese CCategor9a de C#rsosED , al lado derecho de Bste ob&eto colocar #n
ob&eto 'Combo-o*8
Selecciona el ob&eto 'Combo-o* , elige en la ventana de $ro$iedades la $ro$iedad
Ing8 Mart9n Salcedo :#i;ones 68
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
model >#e $ermite colocar los 9tems dentro de la ca&a de lista des$legadle8
L#ego de seleccionar el botn de comando re<erido a la $ro$iedad model se
m#estra la sig#iente ventanaE
Ingresas las categor9as de c#rsos como sonE PSeleccionarQ( 6ise;o Gr<ico(
6ise;o Reb( O<imtica( Leng#a&es de Programacin , Sistemas O$erativos(
>#edando el dise;o del <orm#lario de la sig#iente maneraE
Ing8 Mart9n Salcedo :#i;ones 6
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Colocars #n ob&eto 'Label con la e*$resin CC#rsos O<ertadosD , otro ob&eto
'Label #bicado al lado derecho de Bste Gltimo con la e*$resin CCostoD8 A;ades
dos listas deba&o de las e*$resiones de estos dos Gltimos 'Label( haciendo >#e los
9tems sean eliminados o removidos a travBs del #so de la $ro$iedad model8 L#ego
agregas dos botones de comando >#e indi>#en A0re0ar , 7liminar>
Posteriormente( a;ades dos ob&etos 'Label >#e e*$resenE CC#rsos ?scogidosD ,
CCostoD , deba&o de estos ob&etos 'Label agregas dos ob&etos 'List siendo tambiBn
eliminados o removidos los 9tem a travBs del #so de la $ro$iedad model8
A contin#acin agregas #n ob&eto 'Label con la e*$resin C+orma de PagoED , al
lado derecho de Bste Gltimo ob&eto colocas #n 'Combo-o* >#e debe contener
como 9temsE PSeleccionarQ( Contado , CrBdito8 L#ego los botones de comando
CALCULAR( -ORRAR , C?RRAR , los ob&etos >#e mostrarn el monto de la
matr9c#la( el costo total , el $ago mens#al8 Los nombres de los ob&etos de control
dib#&ados en el <orm#lario >#eda de la sig#iente maneraE
Ing8 Mart9n Salcedo :#i;ones 7"
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Ahora bien( si observamos en el dise;o del <orm#lario( los c#atros ob&etos 'List no
tienen 9tems8 Los ob&etos 'List re<eridos a C#rsos O<ertados , Costo @ob&etos
#bicados al lado i=>#ierdo del dise;o del <orm#larioA se llenarn de 9tems de
ac#erdo a lo seleccionado en la lista des$legadle re<erido a la Categor9a de C#rsos8
Los ob&etos 'List re<eridos a C#rsos ?scogidos , Costos se llenarn en la medida
>#e se seleccione #n c#rso o<ertado , se agreg#e con el botn de comando
A0re0ar8 Los % ob&etos 'List deben tener #n modelo @modelA cada #no( $ara ello
debes de<inir % variablesE modelo4( modelo.( modelo" , modelo% del ti$o
0efa&lt)ist$odel+,. Para $oder hacer #so de la clase 0efa&lt)ist$odel se debe
hacer #so del $a>#ete &ava*8s7ing8IJ , debe ser escrito des$#Bs del $a>#ete
A$licaciones8
Ahora $rocede a escribir la de<inicin de las variables del ti$o 6e<a#ltListModel en
la clase <rmC#rsos?*tension8
Ing8 Mart9n Salcedo :#i;ones 7!
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Una ve= de<inido las % variables de memoria del ti$o 0efa&lt)ist$odel( en el
m/todo constructor se debe indicar >#e la variable modelo" es $ara la ca&a de
lista lstCurO8er( la variable modeloB $ara la ca&a de lista lstCostos( la variable
modeloE es $ara la ca&a de lista lstCur7sco , la variable modelo4 es $ara la ca&a
de lista lstCos8 )ambiBn hacemos >#e los botones de comando Agregar , ?liminar
se inhabilite s# #so desde la e&ec#cin de la a$licacin8 Adems le indicamos #na
locali=acin dentro de la $antalla , el tama;o del <orm#lario @slo escribe lo >#e
se;ala la llave de color ro&oA8
Ahora le toca el t#rno en la $rogramacin al ob&eto 'Combo-o* denominado
cboCategorias en el evento ActionPer<ormed( $ara ello debes seleccionar el ob&eto
mencionado , dando clic botn derecho del mo#se eliges ?vents , l#ego como
Actions seleccionas ActionPer<ormed8
Ing8 Mart9n Salcedo :#i;ones 72
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
?n el evento mencionado $rograma lo sig#iente @slo escribe lo >#e se;ala la llave
de color ro&oAE
Se declara #na variable de memoria llamada indice $ara >#e almacene el 9ndice
Ing8 Mart9n Salcedo :#i;ones 73
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
act#al del 9tem seleccionado del ob&eto 'Combo-o* llamado cboCate0orias8
Sabiendo el valor del 9ndice act#al o activo se hace #so de #na sentencia selectiva
s6itcA >#e evalGa c#l de los 9tems ha sido seleccionado8 Se sabe >#e el $rimer
9tem de la lista des$legadle es &%eleccionar' , le corres$onde el 9ndice !( Dise(o
)r*fico el 9ndice 4( Dise(o +e, el 9ndice . , as9 s#cesivamente8 C#ando sea
&%eleccionar' solo se $rocede a lim$iar los ob&etos lstCurO8er , lstCostos a
travBs del mBtodo clearDC a$licados a las variables modelo" , modeloB8 Si el 9tem
seleccionado es Dise(o )r*fico se $rocede a lim$iar los ob&etos lstCurO8er ,
lstCostos , se agrega los nombres de los c#rsos -orel Draw , Photo %how con
s#s res$ectivos costos a travBs del #so del mBtodo add7lement a$licados a las
variables modelo" , modeloB >#e tienen relacin directa con los ob&etos
lstCurO8er , lstCostos8 6e ig#al <orma se traba&a $ara los dems 9tems del ob&eto
'Combo-o* llamado cboCate0orias8
Si en estos momentos $rocedes a e&ec#tar la a$licacin se mostrar el <orm#lario
de la sig#iente maneraE
S si seleccionas el 9tem 6ise;o Gr<ico se vis#ali=ar los c#rsos con s#s
res$ectivos costos en los 'List del lado i=>#ierdo del dise;o del <orm#lario8
Ing8 Mart9n Salcedo :#i;ones 74
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Salte de la e&ec#cin , contin#emos con la $rogramacin8
Selecciona el ob&eto lstCurO8er , #b9cate en el evento !alue-haged $erteneciente
a List$election , Bste a s# ve= $ertenece a 74ents8 Rec#erda >#e esto se hace
seleccionando al ob&eto lstCurO8er , dando clic botn derecho del mo#se se
m#estra #n menG <lotante8 ?n el evento mencionado $rograma lo sig#ienteE
Se declara #na variable entera llamada 9ndice( esta variable recibe el valor del
9ndice del 9tem seleccionado gracias al mBtodo 0et$electedInde=DC8 Lo >#e se
>#iere es seleccionar el 9tem de la ca&a de lista de lstCostos >#e tenga el mismo
9ndice >#e lstCurO8er( $ara ello se #sa el mBtodo set(elected-ndex+indice, $ara
dar el mismo 9ndice a la ca&a de lista lstCostos8 +inalmente hacemos >#e el botn
de comando Agregar se habilite con el mBtodo setEnabled+,
A contin#acin escribe el sig#iente cdigo en el botn de comando A0re0ar @slo
escribe lo >#e se;ala la llave de color ro&oAE
Ing8 Mart9n Salcedo :#i;ones 75
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
A>#9 declaramos dos variables de ti$o %tring llamados curso , costo , las
variables enteras total , i8 ?n la variable curso se almacena el c#rso seleccionado
en la lista lstCurO8er( el mBtodo "et(election*al&e+, trae consigo el 9tem
seleccionado $ero lo trae como ob&eto , al $oner +(trin", hacemos >#e se
convierta en cadena de caracteres $ara >#e $#eda ser asignada a la variable
curso8 6e ig#al manera se hace con la variable costo8 Para agregar #n 9tem a #na
ca&a de lista se #sa el mBtodo addElement $erteneciente al ob&eto variable
modeloE o modelo48 +inalmente inhabilitamos el botn de comando A0re0ar8
Ahora $rograma en la ca&a de lista lstC#r?sco en el evento *al&e!han"ed c#ando
desees seleccionar #n c#rso $ara l#ego eliminarlo @slo escribe lo >#e se;ala la
llave de color ro&oA8
La idea es la misma >#e se a$lic en la $rogramacin sobre el evento
*al&e!han"ed del ob&eto lstCurO8er8 La di<erencia est en >#e esta ve= se
habilita el #so del botn de comando 7liminar8
?n el botn de comando eliminar colocas la sig#iente $rogramacin @slo escribe lo
>#e se;ala la llave de color ro&oAE
Ing8 Mart9n Salcedo :#i;ones 76
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
?n esta $rogramacin se hace #so del mBtodo remoe+, >#e elimina #n 9tem de la
lista a travBs de la variable ob&eto modeloE modelo4 dado el valor del 9ndice8 Al
<inal de la $rogramacin se inhabilita el botn de comando 7liminar8
Ahora $rocede a $rogramar en el botn de comando Calcular @slo escribe lo >#e
se;ala la llave de color ro&oAE
Se declara la variable de memoria c#enta >#e almacena la cantidad de 9tems
Ing8 Mart9n Salcedo :#i;ones 77
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
e*istentes en la ca&a de lista lstCur7sco a travBs del #so del mBtodo $iFeDC
a$licado a la variable modeloE8 )ambiBn se declara #na variable de memoria i de
ti$o entero , tres variables de ti$o <loat $ara el clc#lo de la matr9c#la( el costo total
, el $ago mens#al8 A travBs de #na sentencia for se $rocede a obtener los valores
de la ca&a de lista lstCos #sando la variable modelo4 con el mBtodo elementAtDC:
$ara >#e estos valores sean s#mados ,a ac#m#lados en la variable de memoria
ctotal8 ?n la $rimera sentencia if se $rocede a averig#ar si las ca&as de listas
lstC#r?sco , LstCos tiene 9tems( si no tienen 9tems se vis#ali=a #n mensa&e de
error indicando la necesidad de seleccionar , agregar c#rsos , se $rocede a
s#s$ender la e&ec#cin del $rograma gracias a instr#ccin return @retornarA8 ?n los
sig#ientes tres if se calc#la el monto de la matr9c#la a$licando el $orcenta&e
indicado en el en#nciado de la a$licacin8 ?n la sig#iente sentencia i< se evalGa si
se seleccion #na <orma de $ago , si no se logr hacerlo m#estra #n mensa&e de
error , s#s$ende la e&ec#cin del $rograma8 L#ego con las sig#ientes sentencias if
se evalGa la <orma de $ago , se $rocede hacer los clc#los res$ectivos8 +inalmente
se los res#ltados en las variables de memoria de ti$o <loat se env9an a los ob&etos
')e*t+ield $ar ser vis#ali=ados en el <orm#lario8
La $rogramacin en los botones de comando -orrar , Cerrar es de la misma <orma
como se a$lic en los temas o sesiones anteriores8 C#ando $rocedas a e&ec#tar t#
a$licacin se debe vis#ali=ar el <orm#lario , #na ve= interact#ado se mostrarn los
res#ltados8
Ing8 Mart9n Salcedo :#i;ones 78
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Ing8 Mart9n Salcedo :#i;ones 7
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
U$O )7L O237TO 3TA2L7
Objeto de Control 3Table
Como $rogramadores( sabemos m#, bien >#e la $resentacin de datos tab#lados es #na
de las tareas ms com#nes >#e se $resentan al momento de crear inter<aces gr<icasJ
desde la sim$le tabla >#e $ermite Gnicamente mostrar el res#ltado de #na cons#lta( hasta
las >#e $ermiten editar directamente el contenido de cada celda( ordenar las col#mnas(
$ersonali=ar s# a$ariencia( etc8 )odas las tareas antes descritas( , m#chas otras( son
$osibles de reali=ar #tili=ando la clase ')ableJ $or s#$#esto( mientras ms com$le&o sea el
re>#erimiento a c#brir( se re>#erir en ig#al medida #tili=ar ms mBtodos o rec#rsos de la
clase8
Los modelos de ta,la son ob&etos >#e im$lementan la interface )ableModelJ a travBs de
ellos es $osible $ersonali=ar m#cho ms , me&or el com$ortamiento de los com$onentes
')able( $ermitiendo #tili=ar al m*imo s#s $otencialidades8
?l sig#iente gr<ico intenta mostrar cmo cada com$onente ')able obtiene siem$re s#s
datos desde #n modelo de ta,la8
Ing8 Mart9n Salcedo :#i;ones 8"
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
La clase Abstract)ableModel es la >#e im$lementa directamente a la inter<ace
)ableModel( a#n>#e es esta clase la >#e se recomienda e.tender $ara #tili=arla como
modelo de ta,la( e*iste #n modelo de ta,la $redeterminado >#e <acilita m#cho el traba&o
con tablas8 ?ste modelo $redeterminado es la clase 6e<a#lt)ableModel8
Propiedad ms usada:
ModelE Permite de<inir el nGmero de col#mnas , <ilas del ob&eto como tambiBn las
e*$resiones >#e irn en las col#mnas8
,/todos ms usados:
addCol#mn@AE A;ade la col#mna al <inal de la matri= de col#mnas8
setModel@AE Asigna el modelo de datos al ob&eto ')able8
GetRo7Co#nt@AE 6ev#elve el nGmero de <ilas en la tabla8
)e8aultTable,odel
?sta clase $ermite constr#ir el modelo $ara el ob&eto ')able8 Los mBtodos ms #tili=ados
sonE
addCol#mn@AE A;ade #na col#mna al modelo8
AddRo7@AE A;ade #na <ila al <inal del modelo8
getCol#mnCo#nt@AE 6ev#elve el nGmero de col#mnas en esta tabla de datos8
getRo7Co#nt@AE 6ev#elve el nGmero de <ilas en esta tabla de datos8
getVal#eAt@AE 6ev#elve #n valor de atrib#to $ara la celda en la $osicin ro7(
col#mn8
insertRo7@AE Inserta #na <ila en el modelo8
RemoveRo7@AE ?limina del modelo segGn la $osicin de la <ila indicada8
Aplicaci%n
Constr#ir #na a$licacin >#e $ermita calc#lar el $romedio de las notas obtenidas en el
c#rso de Programacin Vis#al8 La a$licacin debe $ermitir el ingreso del nombre del
Ing8 Mart9n Salcedo :#i;ones 8!
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
al#mno( la nota de la I Unidad( la nota de la II Unidad , la nota de la III Unidad8 Adems
debe $ermitir la seleccin del t#rno a la >#e $ertenece el al#mno8 A travBs de #n botn de
comando debe agregar los datos en #n ob&eto 'table( calc#lando el $romedio de las notasJ
, a travBs de otro botn de comando debe eliminar la <ila seleccionada en el ob&eto
')able8 )ambiBn se debe mostrar el total de <ilas agregadas en el ob&eto ')able8
$oluci%n:
Usaremos el mismo $ro,ecto #tili=ado en la sesin anterior , slo agregars #n
<orm#lario @'+rameA8
Inmediatamente se m#estra la sig#iente ventanaE
L#ego dar clic en el botn de comando Finish8
Ing8 Mart9n Salcedo :#i;ones 82
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
A contin#acin se m#estra el entorno de desarrollo de Net-eans , no olvides de
dar clic en el botn derecho del mo#se sobre el <orm#lario , establece
Absol&te)ayo&t en (et )ayo&t8
Procedemos a colocar #n ob&eto 'Label con la e*$resin CCALI+ICACION?S 6?L
CURSO 6? PROGRAMACION VISUALD8 6eba&o de Bste t9t#lo #bicar #n ob&eto
'Label con la e*$resin CALUMNOED acom$a;ado de #n c#adro de te*to
@')e*t+ieldA 8 A contin#acin( colocar otro 'Label con la e*$resin CNota de la I
UnidadD acom$a;ado de #n c#adro de te*to , de ig#al manera hacerlo $ara la
seg#nda , tercera #nidad8 L#ego agregamos #n ob&eto 'Combo-o* $ara
seleccionar el t#rno8
Seleccionamos el ob&eto 'Combo-o* , elegimos en la ventana de $ro$iedades( la
$ro$iedad model >#e $ermite colocar los 9tems dentro de la ca&a de lista
des$legadle8 ?legimos el botn de comando re<erido a la $ro$iedad model se
Ing8 Mart9n Salcedo :#i;ones 83
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
m#estra la sig#iente ventanaE
Ingresamos CPSeleccionarQD(CMa;anaD( C)ardeD , CNocheD , l#ego hacemos clic en
el botn de comando OT8 Contin#amos con el dise;o del <orm#lario agregando #n
botn de comando CAgregarD , #n botn de comando C?liminarD8 L#ego
$rocedemos a agregar el ob&eto ')able8
Al ser dib#&ado el ob&eto ')able se observa en el $anel de la i=>#ierda >#e se
vinc#la a #n ob&eto 'ScrollPane8 ?l ob&eto ')able tiene como $ro$iedad $rinci$al a
model.
Ing8 Mart9n Salcedo :#i;ones 84
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
L#ego de seleccionar el botn de comando re<erido a la $ro$iedad model se
m#estra la sig#iente ventanaE
Observamos en la ventana anterior >#e $or de<ecto el ob&eto )able $ro$one la
con<ormacin de % col#mnas , % <ilas( dando la $osibilidad de a#mentar o dismin#ir
el nGmero de col#mnas , <ilas8 Adems $odemos establecer los t9t#los de cada
Ing8 Mart9n Salcedo :#i;ones 85
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
col#mna8 A>#9 debemos hacer hinca$iB >#e las col#mnas , las <ilas son ti$o
1bject esto >#iere decir >#e #n ob&eto ')able es #na matri= de ob&etos @arreglo
bidimensionalA8 Nosotros vamos a establecer el nGmero de col#mnas a travBs de la
$rogramacin , las <ilas se crearn en la medida >#e se necesiten8
Los nombres de los ob&etos de control dib#&ados en el <orm#lario >#eda de la
sig#iente maneraE
Vamos a $roceder a $rogramar8 Comen=amos con hacer #so del $a>#ete s7ing ,
es$ec9<icamente a las clases 'O$tionPane , a la clase ')able8
L#ego $rocedemos a crear #n modelo $ara el ob&eto ')able llamado 'abla a travBs
Ing8 Mart9n Salcedo :#i;ones 86
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
de la clase 0efa&lt'able$odel. Lo hacemos dentro de la clase <rmNotas8 Usar la
clase 6e<a#lt)ableModel es $osible gracias al im$ort &ava*8s7ing8table8IJ
6eclaramos , creamos #na variable de memoria dtm del ti$o 6e<a#lt)ableModel8
?n el mBtodo constr#ctor $rogramamos lo sig#iente @slo escribe lo >#e se se;ala
la llave de color ro&oAE
6eclaramos , creamos #na variable de memoria tit&los del ti$o cadena , es #n
arreglo8 ?sta variable tit&los se iniciali=a con los valores CAl#mnoD( DI UnidadD( CII
UnidadD( CIII UnidadD( CPromedioD , C)#rnoD( >#e sern los t9t#los de las col#mnas
del ob&eto ')able8 L#ego( con el mBtodo set!ol&mn-dentifiers+, se de<ine las
col#mnas con s#s res$ectivos t9t#los en la variable dtm @modelo del ')able llamado
'ablaA8 +inalmente( se vinc#la el modelo( re$resentado en la variable dtm( al ob&eto
')able llamado 'abla8
Si en estos momentos decidimos e&ec#tar n#estra a$licacin( >#edar9a n#estro
<orm#lario as9E
Observamos >#e el ob&eto ')able m#estra las col#mnas de<inas en la
Ing8 Mart9n Salcedo :#i;ones 87
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
$rogramacin hecha en el mBtodo constr#ctor8
Procedamos con la $rogramacin del botn de comando Agregar @slo escribe lo
>#e se se;ala la llave de color ro&oA8
6eclaramos , creamos #na variable de memoria datos de ti$o String , de tama;o
18 L#ego( declaramos las variables de memoria n/( n2( n4 , total de ti$o entero( la
variable #romedio de ti$o do#ble , #na variable de memoria erifica de ti$o
booleano8 Las variables de memoria n/( n2 , n4 reciben los valores ingresado en
los c#adros de te*tos txtn/( txtn2 , txtn4 res$ectivamente8 Con la variable de
memoria veri<ica se $retende eval#ar si se lleg a escribir en los c#adros de te*tos
, se ha,a seleccionado #n t#rno8 Con la sentencia I+ eval#amos la variable veri<ica
, con el o$erador G hacemos negacin( es decir( si la variable 4eri8ica es <also
entonces con U se convierte en verdadero8 Si la variable erifica es <also signi<ica
>#e se ingres los datos en los c#adros de te*tos , se seleccion el t#rno(
entonces $rocedemos a calc#lar el $romedio teniendo $resente >#e las variables
n/(n2( n4 siendo enteras deben ser tratadas como reales @do#bleA8 Posteriormente(
hacemos #so del arreglo datos asignando los datos ingresados , el t#rno
seleccionado en cada #no de los elementos8 Con el mBtodo add%ow+, logramos
crear #na <ila con los valores contenidos con el vector o arreglo datos8 L#ego(
lim$iamos los c#adros de te*tos , hacemos >#e el ob&eto 'Combo-o* >#ede en
Ing8 Mart9n Salcedo :#i;ones 88
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
PSeleccionarQ al dar el valor cero al mBtodo set(elected-ndex+,8 Si la variable
erifica es verdadero signi<ica >#e <alta ingresar algGn dato o seleccionar el t#rno8
+inalmente( se m#estra la cantidad de <ilas agregadas en el c#adro de te*to
txt'otal , haciendo #so del mBtodo set%ow!o&nt+, $erteneciente a dtm8
Procedamos con la $rogramacin del botn de comando ?liminar8
6eclaramos las variables fila , total de ti$o entero8 La variable <ila se le asigna el
valor de la $osicin de la <ila seleccionada en el ob&eto ')able llamado 'abla8 Con
la sentencia I+ se evalGa a la variable fila si es ma,or o ig#al a cero $rocedemos a
remover o borrar la <ila $reviamente seleccionad( caso contrario se m#estra #n
mensa&e indicando >#e se debe seleccionar #na <ila en la )abla8 +inalmente( se
m#estra la cantidad de <ilas agregadas en el c#adro de te*to txt'otal , haciendo
#so del mBtodo set%ow!o&nt+, $erteneciente a dtm8
Procedemos <inalmente a e&ec#tar el <orm#lario8
AUTO7#ALUACIO'
aC (esponde a las si0uientes pre0untas:
48 Ob&eto de control >#e $ermite colocar #na lista de 9tems $ara >#e el #s#ario $#eda
seleccionar( se denomina OOOOOOOOOOOOOOOOOOO
.8 Ob&eto de control >#e $ermite seleccionar #na sola o$cin al des$legar #na lista de
alternativas( se denomina OOOOOOOOOOOOOOOOOOO
"8 Ob&eto de control >#e $ermite vis#ali=ar los datos a manera de c#adr9c#la o celdas( se
denomina OOOOOOOOOOOOOOOOOOOO
%8 MBtodo >#e dev#elve el 9tem seleccionado de #na ca&a de lista( se denomina
Ing8 Mart9n Salcedo :#i;ones 8
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
OOOOOOOOOOOOOOOOOOOOOO
28 La clase 6e<a#ltCombo-o*Model $ermite crear #n modelo $ara el mane&o de #n ob&eto
de control 'Combo-o*8 @verdadero o <alsoAE OOOOOOOOOOOOOOOOOOOOOO
bC )esarrolla las si0uientes aplicaciones:
48 6ise;a #na a$licacin >#e $ermita ingresar nGmeros , los cali<i>#e en nGmeros $ares
en #na ca&a de lista , nGmeros im$ares en otra ca&a de lista8 L#ego se calc#le la s#ma , el
$romedio de los nGmeros $ares , de los nGmeros im$ares8 ?l dise;o del <orm#lario lo
$ro$ones tG mismo8
.8 6ise;a #na a$licacin >#e $ermita ingresar el nombre del candidato( el nombre del
$artido o movimiento al >#e $ertenece , la cantidad de votos obtenidos en las elecciones
m#nici$ales @#sar #na c#adric#la $ara colocar los datos ingresadosA8 Posteriormente #sar
#n ob&eto de control 'Combo-o* >#e contendr las o$cionesE Candidato de ma,or
votacin( Candidato de menor votacin8 Una ve= elegido la o$cin del ob&eto 'Combo-o*
se debe mostrar los datos del candidato8 ?l dise;o del <orm#lario lo $ro$ones tG mismo8
Ing8 Mart9n Salcedo :#i;ones "
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
CAPITULO III
OBJETOS CONTENEDORES Y MENUS
Ing8 Mart9n Salcedo :#i;ones !
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
U$O )7L O237TO 39(A,7
Objeto de Control 39rame
Masta el momento hemos hablado m#, $oco o casi nada del ob&eto '+rame( es decir(
acerca del <orm#lario8 ?s #n ob&eto contenedor $or e*celencia debido a >#e es #n
inter<ace >#e <acilita hacer los $rocesos >#e necesita el #s#ario de la a$licacin8 ?n este
ob&eto $odemos sit#ar todos los dems com$onentes >#e necesitemos $ara el desarrollo
de la inter<ace de n#estra a$licacin8
?n la <ig#ra anterior m#estra la &erar>#9a de herencia de este com$onente desde Ob&ect(
>#e es el $adre de todas las clases de 'ava8 Los mBtodos estarn re$artidos a lo largo de
Ing8 Mart9n Salcedo :#i;ones 2
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
toda la &erar>#9a8 As9 $or e&em$lo( res#lta int#itivo >#e debiera haber #n mBtodo $ara
cambiar el color de <ondo del <orm#lario( $ero Bl no tiene ningGn mBtodo $ara ello( lo tiene
!om#onet.
Propiedades ms usadas:
)itleE Permite de<inir el t9t#lo del <orm#lario( es decir( la eti>#eta de la barra de t9t#lo8
+ontE Se establece el ti$o de letra , el tama;o >#e servir de base a c#al>#ier
e*$resin >#e se colo>#e con c#al>#ier ob&eto de control dentro del <orm#lario
?nabledE Permite habilitar o inhabilitar el #so del ob&eto8
,/todos ms usados:
set)itle@AE A;ade el t9t#tlo en el <orm#lario8
setSi=e@AE ?stablece el tama;o del <orm#lario8
setLocation@AE ?stablece la #bicacin del <orm#lario dentro de la $antalla8
setVisible@AE ?stablece la visibilidad del ob&eto8 Usa valores booleanos8
Ing8 Mart9n Salcedo :#i;ones 3
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
setIconImage@AE ?stablece el 9cono >#e se colocar al lado i=>#ierdo del t9t#lo del
<orm#lario8
sho7@AE Permite cargar #n <orm#lario a la maemoria $ara ser vista $or el #s#ario8
Mide@AE Permite oc#ltar al <orm#lario8
Aplicaci%n
Constr#,e #na a$licacin >#e $ermite ingresar el nombre del $ost#lante( la cantidad de
$reg#ntas bien contestadas , la cantidad de $reg#ntas mal contestadas8 La s#ma entre
las $reg#ntas bien , mal contestadas no debe s#$erar a 4!!8 Por cada $reg#nta bien
contestada vale %8!3 $#ntos , $or cada $reg#nta mal contestada vale H48!% $#ntos8 Se
agregarn los datos antes mencionados en ob&etos 'List , se debe obtener el $ost#lante
de ma,or $#nta&e o el $ost#lante de menor $#nta&e en #n seg#ndo <orm#lario8 Usar los
atrib#tos , mBtodos de la clase '+rame8
$oluci%n:
!# Procedemos a crear #n $ro,ecto denominado Practica( la misma >#e contendr al
$a>#ete #ractica. A $artir de Bste $a>#ete vamos a crear #n <orm#lario con el
ob&eto '+rame( seleccionando dicho $a>#ete , al dar clic con el botn derecho del
mo#se se m#estra #n menG <lotante8 Seleccionemos +orm#lario '+rame8
.8 A contin#acin( colocaremos como nombre al <orm#lario <rmPost#lante8
Ing8 Mart9n Salcedo :#i;ones 4
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
L#ego dar clic en el botn de comando Finish @en caso de >#e la versin de
Net-eans es en castellano entonces dar clic en el botn de comando 'erminarA
3# Se m#estra el entorno de desarrollo de Net-eans , no olvidemos de dar clic en el
botn derecho del mo#se sobre el <orm#lario , establece Absol&te )ayo&t en
(et)ayo&t8
%8 Procedemos a colocar los ob&etos de control( tal como lo a$reciamos en el
sig#iente dise;o de <orm#lario8
Ing8 Mart9n Salcedo :#i;ones 5
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
28 Procedemos a >#itar los 9tems de cada #no de las ca&as de listas8
18 Los ob&etos de control en el dise;o del <orm#lario tienen los sig#ientes nombresE
Ing8 Mart9n Salcedo :#i;ones 6
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
7# Ahora bien( si observamos en el dise;o del <orm#lario( los c#atro ob&etos 'List no
tienen 9tems8 Los ob&etos 'List re<eridos a Post#lante( -#enas( Malas , P#nta&e( se
llenarn de 9tems al momento de #sar el botn de comando A"re"ar8 Siendo c#atro
'List entonces necesitamos c#atro modelos del ti$o 0efa&lt)ist$odel( #no $ara
cada 'List( $ara lo c#al debemos incl#ir en el cdigo de la $rogramacin el $a>#ete
s7ing con la sig#iente instr#ccinE
Ahora $rocedemos a escribir la de<inicin de las variables del ti$o
0efa&lt)ist$odel en la clase <rmPost#lante
Ing8 Mart9n Salcedo :#i;ones 7
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
8# Una ve= de<inido las % variables de memoria del ti$o 0efa&lt)ist$odel5 en el
mBtodo constr#ctor se debe indicar >#e la variable modelo/ es $ara la ca&a de lista
lstPost( la variable modelo2 $ara la ca&a de lista lstB&enas( la variable modelo4
$ara la ca&a de lista lst$alas , la variable modelo6 $ara la ca&a de lista lstP&ntaje8
Antes haremos #so del mBtodo set)itle@A $ara de<inir el t9t#lo del <orm#lario en la
barra de t9t#lo c#,a e*$resin es CPost#lantes al ?*amen de AdmisinD8 )ambiBn
hacemos >#e los botones de comando A"re"ar , Eliminar se inhabilite s# #so
desde la e&ec#cin de la a$licacin8 Los c#adros de te*tos txtPost( txtBien ,
txt$al deben inhabilitarse s# #so en el momento de la e&ec#cin8 Maremos #so de
los mBtodos del ob&eto '+rame llamados set(i7e+, , set)ocation+, $ara darle el
tama;o a$ro$iado al <orm#lario , #bicacin dentro de la $antalla8 ?l o$erador this
hace re<erencia al <orm#lario <rmPost#lante8 Slo escribe lo >#e se;ala la llave de
color ro&o8
Ing8 Mart9n Salcedo :#i;ones 8
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
# Procedemos a de<inir cuatro atributos o propiedades $ara la clase
frmPost&lante8 Las l9neas de cdigo $rogramacin lo $#edes escribir des$#Bs de
las l9neas de cdigo >#e de<inieron a las c#atro variables de ti$o 0efa&lt)ist$odel
Los atrib#tos mayor , menor es $ara almacenar el ma,or , menor $#nta&e de los
$ost#lantes ingresados en los ob&etos 'List , los atrib#tos #ost$ay , #ost$en es
$ara almacenar el nombre del $ost#lante de ma,or $#nta&e , el nombre del
$ost#lante de menor $#nta&e8
Ing8 Mart9n Salcedo :#i;ones
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
4!8 6eba&o de la de<inicin de los atrib#tos( vamos a constr#ir los mBtodos >#e nos
$ermitan dar , obtener el valor a cada #no de los atrib#tos8 Comen=aremos $or los
atrib#tos ma,or , menor de<iniendo los sig#ientes mBtodosE
?l mBtodo set$ayor+, tiene #n $armetro llamado m de ti$o do&ble , con el
o$erador oid signi<ica >#e no tiene el mBtodo valor de retorno8 ?ste mBtodo
servir almacenar en el atrib#to mayor el valor del $armetro m8 ?n cambio el
mBtodo "et$ayor+, no tiene $armetro $ero s# valor de retorno es do&ble( es
decir( >#e Bste mBtodo arro&a o se $#ede obtener el valor almacenado en el atrib#to
mayor8 Lo mismo s#cede $ara los mBtodos set$enor+, , "et$enor+,8 Vamos a
$roceder a crear los mBtodos $ara los atrib#tos #ost$ay , #ost$en8
Ing8 Mart9n Salcedo :#i;ones !""
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
!!# Vamos a $roceder a $rogramar en el botn de comando N&eo8
!2# Ahora $rogramemos en el botn de comando A"re"ar8
Ing8 Mart9n Salcedo :#i;ones !"!
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Procedemos a declarar las variables b&enas , malas como enteras , #&ntaje
como real @do#bleA8 Las variables de memoria enteras reciben los valores
ingresados en los c#adros de te*tos txtBien , txt$al , la variable #&ntaje se
almacena el res#ltado segGn el valor de las $reg#ntas bien , mal contestadas8 Con
la sentencia I+ evalGa >#e la cantidad de $reg#ntas contestadas no s#$eren a 4!!8
Si no s#$era a 4!! $rocedemos agregar en las ca&as de listas a travBs de las
variables de ti$o 0efa&lt)ist$odel8
4"8 Programemos en el ob&eto 'List denominado lstPost en el evento Val#eChanged8
?n esta $rogramacin se b#sca >#e al momento de seleccionar a #n $ost#lante en
la ca&a de lista lstPost( se seleccione inmediatamente la cantidad de $reg#ntas
bien contestadas( la cantidad de $reg#ntas mal contestadas , el $#nta&e en las
dems ca&as de listas8 Se <inali=a habilitando el #so del botn de comando
Eliminar8
4%8 Programemos en el botn de comando ?liminar en el evento
Ing8 Mart9n Salcedo :#i;ones !"2
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
?liminamos lo seleccionado con el mBtodo remove $erteneciente a los modelos de
cada ca&a de lista8
!5# ?s hora de crear el seg#ndo <orm#lario8 Para ello seleccionamos el $a>#ete
$ractica , en la o$cin New @n#evoA elegimos Form&lario JFrame8 A Bste
<orm#lario se llamar frm!ons&lta5 siendo el dise;o el sig#ienteE
418 ?s necesario >#e los ob&etos 'Radio-#tton $ertene=can a #n -#ttonGro#$8
458 Procedemos a colocar los nombres a los ob&etos de control8
Ing8 Mart9n Salcedo :#i;ones !"3
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
!8# ?l <orm#lario <rmCons#lta ser activado al momento de dar clic en el botn de
comando btn!ons&ltar del $rimer <orm#lario frmPost&lante8 Volvamos al $rimer
<orm#lario , $rogramemos en el botn !ons&ltar8
Ing8 Mart9n Salcedo :#i;ones !"4
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
La $rogramacin se inicia con la declaracin de variables de ti$o entero( real ,
cadena de caracteres8 ?n la variable c&enta se almacena la totalidad de 9tems
e*istentes en la ca&a de lista lstP&ntaje a travBs de la variable modelo68 Si la
variable c#enta es ma,or o ig#al a 4 entonces se $rocede con #na sentencia for a
b#scar el ma,or $#nta&e , la $osicin @9ndiceA dentro de la ca&a de lista
corres$ondiente al ma,or $#nta&e8 L#ego con el mBtodo setMa,or@A se asigna el
valor de la variable may al atrib#to mayor $erteneciente a la clase <rmPost#lante8
La misma idea se hace con el mBtodo set$enor+, , con las variables #may ,
#men se almacenan los nombres de los $ost#lantes >#e obt#vieron el ma,or ,
menor $#nta&e res$ectivamente8 L#ego se asignan a los atrib#tos #ost$ay ,
#ost$en5 a travBs de los mBtodos setPost$ay+, , setPost$en+,5 los valores >#e
se enc#entra en #may , #men8 A contin#acin( se declara , se instancia la variable
form2 de ti$o <rmCons#lta( es decir( se crea #na variable <orm. >#e tiene los
mismos atrib#tos , mBtodos del <orm#lario <rmCons#lta8 Posteriormente con los
mBtodos "et$ayor+,( "et$enor+,( "etPost$ay+, , "etPost$en+, se $asan los
valores a los atrib#tos a la variable ob&eto form28 L#ego con el mBtodo show+,
hacemos >#e el seg#ndo <orm#lario se m#estre8
408 Volvamos al seg#ndo <orm#lario , comen=amos a $rogramar8 6e<inamos los
atrib#tos , la $rogramacin en el mBtodo constr#ctor8
Los atrib#tos de<inidos al inicio de la clase <rmCons#lta nos $ermitir recibir los
valores o datos del $rimer <orm#lario8 La $rogramacin agregada en el mBtodo
constr#ctor de<ine el t9t#lo del <orm#lario con la e*$resin CCons#lta del Ma,or ,
Ing8 Mart9n Salcedo :#i;ones !"5
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Menor P#nta&eD( se establece el tama;o del <orm#lario <rmCons#lta , <inalmente la
locali=acin dentro de la $antalla8
.!8 Programemos en el botn de comando Ver lo sig#ienteE
Mandamos al c#adro de te*to el valor contenido en el atrib#to $ostMa, siem$re ,
c#ando estB seleccionado el 'Radio-#tton re<erido al $ost#lante de ma,or $#nta&e(
de lo contrario se m#estra el contenido del atrib#to $ostMen re<erido al $ost#lante
de menor $#nta&e8
Ing8 Mart9n Salcedo :#i;ones !"6
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
O237TO$ CO'T7'7)O(7$ 3PA'7L <
3$C(OLLPA'7L
$6in0 Containers
6os objetos pertenecientes a !wing 3ontainers( son objetos 7ue permiten agrupar a
otros objetos J 4acilitan el manejo de ciertos procesos dentro de una aplicaciKn. 'n el
entorno de Get5eans la paleta de los !wing 3ontainers muestra lo siguiente.
Ing8 Mart9n Salcedo :#i;ones !"7
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
'n el presente tema vamos a hacer uso de los objetos *+anel J *!croll+ane.
Objeto Contenedor 3Panel
?ste com$onente lo >#e nos $ermite es Agr#$ar Otros Com$onentes dentro de Bl @algo
as9 como el +rame en Vis#al8net o el Gro#$-o* de Po7er -#ilderA8
Para em$e=ar creamos #n $ro,ecto( #na ve= hecho este $aso( vamos al $anel del lado
derecho donde se enc#entran los elementos S7ing Containers , seleccionamos el
com$onente Panel @'PanelA( lo seleccionamos , soltamos en el +orm#lario8
Ing8 Mart9n Salcedo :#i;ones !"8
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
6es$#Bs de hacer esto soltamos , si hacemos clic en otro lado del rea del <orm#lario
ntese >#e $areciera >#e el Panel no est#viera $ero si esta $ase el mo#se $or donde
coloc el Panel , ah9 lo #bicar( $ero no se alarmen si est8
-ien $ara no tener estos $roblemas vamos a darle #n borde a n#estro 'Panel( ?n la
ventana de $ro$iedades como se m#estra en la imagen seleccionamos a la $ro$iedad
Border8
Nos mostrar la sig#iente imagen
-ien tendremos estoE
Ing8 Mart9n Salcedo :#i;ones !"
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Propiedad ms usada:
-orderE Se establece el borde , el t9t#lo si <#ese necesario8
,/todo ms usado:
set?nabled@AE Para habilitar o inhabilitar el #so del ob&eto8
Objeto Contenedor 3$crollPanel
Un ob&eto ScrollPanel $ermite #bicar dentro de ella #no o varios ob&etos >#e comGnmente
son ob&etos de control8 C#ando se sobre$asa el es$acio del ob&eto 'ScrollPanel( Bste
m#estra las barras de des$la=amiento vertical ,Fo hori=ontal8
Por e&em$lo( agregamos el 'ScrollPane , dentro del mismo agregamos #n 'Panel $ara
$oder #tili=ar los com$onentes librementeJ no olvidarse de la $ro$iedad Absol&te )ayo&t
>#e nos $ermite colocar en c#al>#ier $osicin otro com$onente dentro del 'Panel8
Maremos >#e c#ando carg#e el <orm#lario carg#e #n te*to dentro de #n +rame
Ing8 Mart9n Salcedo :#i;ones !!"
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Si colocamos el sig#iente cdigo en el botn de comando MostrarE
private void 5tn0ostrarAction+er4ormedjava.awt.event.Action'vent evt$ {
lblTexto.setTextD&bserva 7ue el cKdigo de ejemplo selecciona el tamaLo pre4erido del
contenedor del panel despla9able. Fna alternativa serMa seleccionar el tamaLo pre4erido
del propio panel despla9able. ,e cual7uier modo( se estN limitando el tamaLo del panel
despla9able. 'sto es necesario por7ue el tamaLo pre4erido de un panel despla9able es ser
tan grande como puedaE$;2
Para el botn de comando Lim$iar colocamosE
private void btn6impiar Action+er4ormedjava.awt.event.Action'vent evt$ {
lblTexto.setTextDE$;
2
Al ser e&ec#tado se debe mostrar el <orm#lario como sig#e8

Aplicaci%n
Constr#,e #na a$licacin >#e $ermita ingresar el t9t#lo de #na $el9c#la( seleccionar s#
categor9a >#e $#ede ser Comedia( accin( 6ib#&os animados o 6rama8 Adems se debe
ingresar la d#racin en min#tos de la $el9c#la , el nombre del actor $rinci$al8 Una ve=
ingresado los datos se $rocede a agregar en #n ob&eto ')able generando #na <ila de datos
, mostrando en #n c#adro de te*to el nGmero de $el9c#las ingresadas8
$oluci%n:
48 Creamos #n $ro,ecto denominado ?&ercicios8
Ing8 Mart9n Salcedo :#i;ones !!!
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
L#ego dar clic en el botn de comando Finish @'erminar si el entorno de Net-eans
es en castellanoA8
.8 ?stando en el entorno de Net-eans( seleccionamos el $a>#ete e&ercicios , dando
clic botn derecho del mo#se se m#estra #n menG <lotante( donde seleccionamos
+orm#lario '+rame8
Ing8 Mart9n Salcedo :#i;ones !!2
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
"8 A contin#acin( colocaremos como nombre de <orm#lario <rmPelic#las8
L#ego dar clic en el botn de comando Finish @en caso de >#e la versin de
Net-eans es en castellano entonces dar clic en el botn de comando 'erminarA
4# Se m#estra el entorno de desarrollo de Net-eans , no olvidemos de dar clic en el
botn derecho del mo#se sobre el <orm#lario , establece Absol&te )ayo&t en
(et)ayo&t8
5# Procedemos a colocar #n ob&eto de control 'Label con la e*$resin CP?LICULAED ,
al lado derecho #n c#adro de te*to ')e*t+ield8
Ing8 Mart9n Salcedo :#i;ones !!3
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
18 Colocamos #n ob&eto contenedor 'Panel $or deba&o de la e*$resin CP?LICULAED8
58 Procedemos a #tili=ar la ventana de $ro$iedades del ob&eto 'Panel8 No vamos a
#sar la <icha de $ro$iedades >#e se enc#entra al lado derecho del dise;o del
<orm#lario( sino >#e seleccionamos al ob&eto 'Panel , l#ego al dar clic botn
derecho del mo#se( seleccionamos la o$cin $ro$iedades8
Ing8 Mart9n Salcedo :#i;ones !!4
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Ing8 Mart9n Salcedo :#i;ones !!5
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
8# Seleccionamos la $ro$iedad Border , damos clic en el botn de comando
corres$ondiente a Bsta $ro$iedad8
# A contin#acin( seleccionamos como borde dis$onible a 'itledBorder8
4!8 ?n t9t#lo colocamos CCategor9as de Pel9c#lasD8
Ing8 Mart9n Salcedo :#i;ones !!6
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
448 Ahora $rocedemos a de<inir el borde @$ro$iedad >#e se enc#entra encima de
)9t#loA8
4.8 Posteriormente( seleccionamos el ti$o de -orde ?tched-order8
Ing8 Mart9n Salcedo :#i;ones !!7
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
4"8 L#ego de dar clic en el botn de comando OT( >#eda de<inido el -orde , el t9t#lo8
4%8 Volvemos a dar clic en el botn de comando OT , regresamos a la ventana de
$ro$iedades del 'Panel8
Ing8 Mart9n Salcedo :#i;ones !!8
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Cerrar Bsta ventana #sando el botn de comando Close @CerrarA8
428 ?l dise;o del <orm#lario >#eda as9E
418 Ahora debemos hacer algo m#, im$ortante( >#e es establecer como Absol#te
La,o#t al ob&eto 'Panel $ara >#e $ermita colocar los ob&etos de control con
<acilidad8
Ing8 Mart9n Salcedo :#i;ones !!
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
!7# Colocamos c#atro ob&etos de ti$o J%adioB&tton dentro del ob&eto Panel(
>#edando el dise;o del <orm#lario as9E
!8# No olvidemos de crear #n ob&eto B&tton2ro&# e indicar $ara cada ob&eto
J%adioB&tton en s# $ro$iedad -#ttonGro#$ >#e $ertenecen a -#ttonGro#$48
408 Seg#imos agregando los ob&etos de control segGn observamos en el dise;o del
<orm#lario8 ?sta ve= vas a agregar #n ob&eto 'ScrollPane $ara colocar dentro de
ella a #n ob&eto ')able8
Ing8 Mart9n Salcedo :#i;ones !2"
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
.!8 A contin#acin colocamos #n ob&eto ')able8 Los nombres de los ob&etos de control
son tal como se a$recia en el sig#iente dise;o de <orm#lario8
Ing8 Mart9n Salcedo :#i;ones !2!
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
.48 Vamos a $roceder a $rogramar8 Comen=amos con hacer #so del $a>#ete s7ing ,
es$ec9<icamente a las clases 'O$tionPane , a la clase ')able8
22# L#ego $rocedemos a crear #n modelo $ara el ob&eto ')able llamado 'abla a travBs
de la clase 0efa&lt'able$odel. Lo hacemos dentro de la clase <rmNotas8 Usar la
clase 6e<a#lt)ableModel es $osible gracias al im$ort &ava*8s7ing8table8IJ
6eclaramos , creamos #na variable de memoria dtm del ti$o 6e<a#lt)ableModel8
."8 ?n el mBtodo constr#ctor $rogramamos lo sig#iente @slo escribe lo >#e se se;ala
la llave de color ro&oAE
6eclaramos , creamos #na variable de memoria tit&los del ti$o cadena , es #n
arreglo8 ?sta variable tit&los se iniciali=a con los valores C)9t#lo de la Pel9c#laD(
DCategor9aD( C6#racin@minAD , CActor Princi$alD( >#e sern los t9t#los de las
col#mnas del ob&eto ')able8 L#ego( con el mBtodo set!ol&mn-dentifiers+, se
de<ine las col#mnas con s#s res$ectivos t9t#los en la variable dtm @modelo del
')able llamado 'ablaA8 Se vinc#la el modelo( re$resentado en la variable dtm( al
ob&eto ')able llamado 'abla8 Inhabilitamos los ob&etos indicados en la
$rogramacin , damos el en<o>#e al botn de comando N#evo8
.%8 Procedemos a $rogramar en el botn de comando N#evo @slo escribe lo >#e se
Ing8 Mart9n Salcedo :#i;ones !22
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
se;ala la llave de color ro&oA8
.28 Procedemos a $rogramar en el botn de comando Agregar @slo escribe lo >#e se
se;ala la llave de color ro&oA8
6eclaramos #na variable de memoria llamada datos de ti$o String , de tama;o %8
)ambiBn declaramos #na variable entera llamada total8 ?n el $rimer elemento del
arreglo datos @datosV!WA se asigna el valor ingresado en el c#adro de te*to txtPel
@el t9t#lo de la $el9c#laA8 A contin#acin( se hace #so de sentencias selectivas I+
$ara eval#ar c#l de los ob&etos 'Radio-#tton ha sido seleccionado , segGn el
Ing8 Mart9n Salcedo :#i;ones !23
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
ob&eto seleccionado se asigna la categor9a al seg#ndo elemento del arreglo datos
@datosV4WA8 ?n el tercer elemento @datosV.WA , c#arto elemento @datosV"WA del arreglo
datos se asignan la d#racin , el actor $rinci$al res$ectivamente8 Con el mBtodo
addRo7@A( agregamos #na <ila en el ob&eto )able con los datos contenidos en el
arreglo datos. +inalmente( en la variable total se asigna la cantidad de <ilas de
datos >#e tiene el ob&eto ')able haciendo #so del mBtodo "et%ow!o&nt+, de la
variable ob&eto dtm8 ?ste Gltimo valor conseg#ido es vis#ali=ado en el c#adro de
te*to txt'otal a travBs del mBtodo set'ext+,8
.18 L#ego( $rocedemos a $rogramar en el botn de comando ?liminar @slo escribe lo
>#e se se;ala la llave de color ro&oA8
6eclaramos las variables fila , total de ti$o entero8 La variable <ila se le asigna el
valor de la $osicin de la <ila seleccionada en el ob&eto ')able llamado 'abla8 Con
la sentencia I+ se evalGa a la variable fila si es ma,or o ig#al a cero $rocedemos a
remover o borrar la <ila $reviamente seleccionada( caso contrario se m#estra #n
mensa&e indicando >#e se debe seleccionar #na <ila en la )abla8 +inalmente( se
m#estra la cantidad de <ilas agregadas en el c#adro de te*to txt'otal , haciendo
#so del mBtodo set%ow!o&nt+, $erteneciente a dtm8
.58 +inalmente( $rogramamos en el botn de comando Cerrar8
.38 Procedemos a e&ec#tar el <orm#lario8
Ing8 Mart9n Salcedo :#i;ones !24
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
O237TO$ CO'T7'7)O(7$ 3TA227)PA'7L <
3)7$@TOPPA'7L
Objeto Contenedor 3TabbedPanel
?ste com$onente est com$#esto $or #n con&#nto de $aneles >#e $#ede almacenar #n
contenido en #n es$acio com$acto8 Sitio donde oc#ltamos o revelamos el contenido
almacenado en los $aneles con $esta;as haciendo clic en la $esta;a del $anel >#e se
desea acceder8 Por e&em$lo( $ara em$e=ar creamos #n $ro,ecto( #na ve= hecho este
$aso( vamos al $anel del lado derecho donde se enc#entran los elementos S7ing
Containers , seleccionamos el com$onente Panel @'PanelA Lo seleccionamos , soltamos
en el +orm#lario
Ing8 Mart9n Salcedo :#i;ones !25
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Para #sar el ')abbedPanel debemos de insertarle #n Panel dentro de el mismo ,a >#e si
no lo hacemos( c#al>#ier controles >#e agreg#emos se ma*imi=ar a$oderndose de
)ab4 , cada control >#e agreg#emos ser #n n#evo )ab8
Procedemos entonces a agregarle el $anel a n#estro ')abbed $ara $oder #tili=arlo
correctamente8
No nos olvidemos de $onerle al 'Panel s# $ro$iedad Absol#te La,o#t $ara $oder #tili=ar
los controles libremente dentro de Bl8
Propiedad ms usada:
-orderE Se establece el borde , el t9t#lo si <#ese necesario8
,/todo ms usado:
set?nabled@AE Para habilitar o inhabilitar el #so del ob&eto8
Ing8 Mart9n Salcedo :#i;ones !26
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Objeto Contenedor 3)es5topPanel
?ste ob&eto es #tili=ado ms $ara me&orar el dise;o de los <orm#larios8 ?s #n inter<a= ms
agradable $ara dise;ar las a$licaciones8
Como observamos los ob&etos de control se dib#&an encima del ob&eto '6es/to$Panel(
>#e $or de<ecto es de #n <ondo de color a=#l8
Propiedad ms usada:
-ac/gro#ndE Para de<inir el color del ob&eto '6es/to$Panel8

Aplicaci%n
Constr#,e #na a$licacin >#e $ermita ingresar los a$ellidos( los nombres( el telB<ono(
seleccionar el grado de instr#ccin , el se*o de #n al#mno8 ?stos datos se mane&arn en
#na $esta;a del ob&eto ')abbedPanel8 ?n #na seg#nda $esta;a se debe seleccionar el
c#rso >#e el al#mno >#iere matric#larse , la <orma de $ago8 A travBs de #n botn de
comando MA)RICULAR se llevar los datos a #n ob&eto ')able >#e se enc#entra en #na
tercera $esta;a8 ?n la $esta;a donde se enc#entra el ob&eto ')able se mostrar la s#ma
de los $recios de todos los c#rsos >#e el al#mno >#iere matric#larse8 Mabr la $osibilidad
de >#itar o eliminar #n c#rso >#e el al#mno desista llevarlo8
Ing8 Mart9n Salcedo :#i;ones !27
btnClear
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
$oluci%n:
!# Creamos #n $ro,ecto denominado A$licaContenedores8 L#ego estando en el
entorno de Net-eans( seleccionamos el $a>#ete a#licacontenedores , dando clic
botn derecho del mo#se( se m#estra #n menG <lotante( donde seleccionamos
+orm#lario '+rame8
2# A contin#acin( colocaremos como nombre de <orm#lario frm$atric&la8
L#ego dar clic en el botn de comando Finish @en caso de >#e la versin de
Net-eans es en castellano entonces dar clic en el botn de comando 'erminarA
Ing8 Mart9n Salcedo :#i;ones !28
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
3# Se m#estra el entorno de desarrollo de Net-eans , no olvidemos de dar clic en el
botn derecho del mo#se sobre el <orm#lario , establece Absol&te )ayo&t en
(et)ayo&t8
%8 Procedemos a colocar #n ob&eto de control 'Label con la e*$resin CMA)RICULA
6? CURSOS 6? ?X)?NSIOND8 6eba&o de Bsta e*$resin colocaremos #n ob&eto
')abbedPanel8 Una ve= seleccionado el ob&eto ')abbedPanel de la $aleta , lo
#bicamos en el <orm#lario( antes de dar clic $ara >#e >#ede dib#&ado( tiene la
sig#iente a$arienciaE
Al dar clic se red#ce el tama;o del ob&eto ')abbedPanel8
Ing8 Mart9n Salcedo :#i;ones !2
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
6ebemos agrandar dicho ob&eto hasta >#e >#ede as9E
5# ?stando seleccionado el ob&eto ')abbedPanel( dar clic botn derecho del mo#se(
seleccionamos la o$cin A"re"ar desde Paleta( l#ego (win" , elegimos JPanel8
Ing8 Mart9n Salcedo :#i;ones !3"
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Una ve= seleccionado JPanel se crear #na $esta;a 'ab/ en el ob&eto
J'abbedPanel8
6# Procedemos a colocar Absol&te )ayo&t en la o$cin (et )ayo&t c#ando #semos
el botn derecho del mo#se sobre el 'ab/8
Ing8 Mart9n Salcedo :#i;ones !3!
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
58 A contin#acin( colocaremos #n ob&eto 'des/to$Panel encima del )ab48 Una ve=
seleccionado el ob&eto '6es/to$Panel de la $aleta , lo #bicamos dentro del )ab4(
antes de dar clic $ara >#e >#ede dib#&ado( tiene la sig#iente a$arienciaE
Al dar clic se red#ce el tama;o del ob&eto '6es/to$Panel8
Ing8 Mart9n Salcedo :#i;ones !32
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
6ebemos agrandar dicho ob&eto hasta >#e >#ede as9E
38 Comen=amos a colocar ob&etos de control de ti$o 'Label( ')e*t+ield , 'Combo-o*8
?l ob&eto 'Combo-o* contendr como grado de instr#ccin a
CPSeleccionarD(DSec#ndariaD , CS#$erior8D )ambiBn colocaremos #n ob&eto 'Panel
$ara el se*o del al#mno donde se establecer el t9t#lo , el borde8
Ing8 Mart9n Salcedo :#i;ones !33
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
?ste ob&eto 'Panel @'$anel.A re<erido a se*o se debe establecer en la $ro$iedad
bac/gro#nd( el color >#e debe ser $arecido al color del '6es/to$Panel8
Ing8 Mart9n Salcedo :#i;ones !34
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
# Una ve= establecido el color del 'Panel.( $rocedemos a establecer $ara Bste
ob&eto 'Panel. el Absol&te )ayo&t en (et )ayo&t8
!"# ?l ob&eto JPanel2 esta re<erido al dato se*o( en cambio el ob&eto JPanel/ est
re<erido al 'ab/8 Como debemos colocar #n t9t#lo a la $esta;a 'ab/ demos hacer
#so de la vista de $ro$iedades del JPanel/8 P#edes seleccionar del $anel
Navegador @>#e se enc#entra a la i=>#ierda del dise;o del <orm#larioA , al dar clic
botn derecho del mo#se se m#estra #n menG <lotante , seleccionas #ro#iedades8
Vamos a colocar como t9t#lo de la $esta;a C6atos del al#mnoD
Ing8 Mart9n Salcedo :#i;ones !35
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
!!# Vamos a $roceder a crear otro )ab8 6ebemos n#evamente seleccionar el ob&eto
')abbedPanel( dar clic botn derecho del mo#se( seleccionamos la o$cin
A"re"ar desde Paleta( l#ego (win" , elegimos JPanel.
Una ve= seleccionado JPanel se crear #na $esta;a 'ab2 en el ob&eto
J'abbedPanel8
Ing8 Mart9n Salcedo :#i;ones !36
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
!2# Procedemos a colocar Absol&te )ayo&t en la o$cin (et )ayo&t c#ando #semos
el botn derecho del mo#se sobre el 'ab28
!3# Colocamos #n ob&eto '6es/to$Panel en el )ab. tal como lo hicimos en
anteriormente8 L#ego sobre el ob&eto '6es/to$Panel al dar clic botn derecho del
Ing8 Mart9n Salcedo :#i;ones !37
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
mo#se( en el menG <lotante seleccionamos $ro$iedades8
Ing8 Mart9n Salcedo :#i;ones !38
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Se establece otro color al ob&eto '6es/to$Panel8
4%8 Una ve= establecido el color $ara el ob&eto '6es/to$Panel( $rocedemos a colocar
los ob&etos de control $ara el )ab.8 Se #tili=ar #n 'Combo-o* $ara los c#rsos >#e
contendr los nombres sig#ientesE
!5# Utili=aremos #n ob&eto 'Panel $ara la <orma de $ago @al contado o al $ago de dos
c#otasA( >#e #na ve= dib#&ado , establecido el borde , el t9t#lo( debemos indicar
>#e s# (et )ayo&t es Absol&te )ayo&t8
Ing8 Mart9n Salcedo :#i;ones !3
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
418 Seleccionamos al ob&eto 'Panel" >#e $ertenece al )ab. , de<inimos el t9t#lo de la
$esta;a tal como se hi=o con )ab8 ?sta ve= el t9t#lo ser CC#rso a Matric#larseD8
Creamos #n )ab" de la <orma cmo se hi=o( tambiBn colocamos #n ob&eto
'6es/to$Panel( a Bste Gltimo le cambiamos el color en la $ro$iedad bac/gro#nd ,
$osteriormente colocamos los ob&etos de control8 Se #sar #n ob&eto ')able $ara
vis#ali=ar los c#rsos matric#lados del al#mno8 Vamos a colocar los nombres a cada
#no de los ob&etos de control $ara cada )ab del ob&eto ')abbedPanel8
Ing8 Mart9n Salcedo :#i;ones !4"
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Ing8 Mart9n Salcedo :#i;ones !4!
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
458 Vamos a $roceder a $rogramar8 Comen=aremos con hacer #so del $a>#ete s7ing ,
es$ec9<icamente a las clases 'O$tionPane , ')able8
!8# L#ego $rocedemos a crear #n modelo $ara el ob&eto ')able llamado 'abla a travBs
de la clase 0efa&lt'able$odel. Lo hacemos dentro de la clase <rmNotas8 Usar la
clase 6e<a#lt)ableModel es $osible gracias al im$ort &ava*8s7ing8table8IJ
6eclaramos , creamos #na variable de memoria dtm del ti$o 6e<a#lt)ableModel8
408 ?n el mBtodo constr#ctor $rogramamos lo sig#iente @slo escribe lo >#e se;ala la
llave de color ro&oAE
Ing8 Mart9n Salcedo :#i;ones !42
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
6eclaramos , creamos #na variable de memoria tit&los del ti$o cadena , es #n
arreglo8 ?sta variable tit&los se iniciali=a con los valores CC#rso Matric#ladoD(
C6#racinD( CCostoD( C+orma de PagoD , CPrecioD( >#e sern los t9t#los de las
col#mnas del ob&eto ')able8 L#ego( con el mBtodo set!ol&mn-dentifiers+, se
de<ine las col#mnas con s#s res$ectivos t9t#los en la variable dtm @modelo del
')able llamado 'ablaA8 Se vinc#la el modelo( re$resentado en la variable dtm( al
ob&eto ')able llamado 'abla8
.!8 Procedemos a $rogramar en el botn de comando N#evo @slo escribe lo >#e se
se;ala la llave de color ro&oA8
6eclaramos como variables de memoria i , total de ti$o entero8 Lim$iamos los
c#adros de te*tos , $ara los ob&etos 'Combo-o* damos como 9tem
$redeterminado a PSeleccionarQ @9ndice activo ig#al a ceroA8 ?n la variable total se
c#enta el nGmero de <ilas del ob&eto ')able a travBs de la variable dtm8 Con la
sentencia -f eval#amos si es ma,or a cero , $rocedemos con la sentencia for a
eliminar <ila $or <ila con el mBtodo remoe+,8
Ing8 Mart9n Salcedo :#i;ones !43
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
.48 L#ego( $rocedemos a $rogramar en el botn de comando MA)RICULAR >#e se
enc#entra en el )ab. @C#rso a Matric#larseA8
6eclaramos #na variable de memoria llamada datos de ti$o String , de tama;o 28
)ambiBn declaramos las variables total( costo e i como enteros , $recio como
n#mBrico real8 La variable costo se almacena el contenido del c#adro de te*to
txt!osto8 ?n el $rimer elemento del arreglo datos @datosV!WA se asigna el valor
seleccionado del ob&eto cbo!&rso8 ?n el seg#ndo elemento del arreglo datos
@datosV4WA se almacena el contenido del c#adro de te*to txt0&ra , en el tercer
elemento @datosV.WA el contenido del c#adro de te*to txt!osto8 ?n el c#arto
elemento se almacena el valor CContadoD si la <orma de $ago es al contado , en el
>#into elemento el costo descontado en 2K8 Si la <orma de $ago es a $agar a
c#otas entonces el c#arto elemento se asigna el valor CPago de . c#otasD , al
Ing8 Mart9n Salcedo :#i;ones !44
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
>#into elemento se asigna el res#ltado del costo incrementado en #n 4!K8 Con el
mBtodo add%ow+,( agregamos #na <ila en el ob&eto J'able con los datos
contenidos en el arreglo datos. ?n la variable total se asigna la cantidad de <ilas de
datos >#e tiene el ob&eto J'able haciendo #so del mBtodo "et%ow!o&nt+, de la
variable ob&eto dtm8 Con la sentencia <or b#scamos la s#ma de los $recios en la
variable #recio8 +inalmente asignamos el valor calc#lado en $recio al c#adro de
te*to txtP'otal e iniciali=amos los ob&etos de control $ara la $osibilidad de
seleccionar otro c#rso8

22# )ambiBn debemos $rogramar en el ob&eto cbo!&rso en el evento
ActionPerformed @slo escribe lo >#e se se;ala la llave de color ro&oA8
Pretendemos al momento de seleccionar #n c#rso se m#estre la d#racin del c#rso
, el costo en los c#adros de te*tos t*t6#ra , t*tCosto res$ectivamente8
23# Procedemos a $rogramar en el botn de comando :UI)AR >#e se enc#entra en el
'ab4 @slo escribe lo >#e se se;ala la llave de color ro&oA8
Ing8 Mart9n Salcedo :#i;ones !45
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
6eclaramos las variables i( fila , total de ti$o entero8 La variable <ila se le asigna el
valor de la $osicin de la <ila seleccionada en el ob&eto ')able llamado 'abla8 Con
la sentencia I+ se evalGa a la variable fila si es ma,or o ig#al a cero $rocedemos a
remover o borrar la <ila $reviamente seleccionada , calc#lamos la s#ma de los
$recios de todos los c#rsos mostrndolo en el c#adro de te*to txtP'otal( caso
contrario se m#estra #n mensa&e indicando >#e se debe seleccionar #na <ila en la
)abla8
.%8 +inalmente( $rogramamos en el botn de comando Cerrar8
.28 Procedemos a e&ec#tar el <orm#lario8
Ing8 Mart9n Salcedo :#i;ones !46
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
O237TO$ ,7'U$ 3,7'U2A( < 3,7'UIT7,
$6in0 ,enus
A>#9 $odemos ver el rbol de herencia de las clases relacionadas con los menGsE
Como se ve en la <ig#ra( los 9tems de menGs @incl#idos los $ro$ios menGsA son sim$les
botones8 Podr9amos $reg#ntarnos como #n menG( si es slo #n botn( m#estra s#s 9tems8
Ing8 Mart9n Salcedo :#i;ones !47
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
La res$#esta es >#e c#ando se activa #n menG( a#tomticamente trae #n menG
des$legable >#e m#estra s#s 9tems8
Crear y con8i0urar 2arras de ,en
MBtodosE
'Men#-ar@AE Crea #na barra de MenG8
set'Men#-ar@AE Selecciona la barra de menG de #n +rame interno8
get'Men#-ar@AE Obtiene la barra de menG de #n +rame interno
Crear y rellenar ,ens
MBtodosE
'men#@AE Crea #n MenG a $artir de #na o$cin de la barra8
add@'Men#ItemAE Crea #n 9tem de menG al <inal del menG8
insert@AE Inserta #n 9tem de menG o #n se$arador de menG( en la $osicin
es$eci<icada8
Remove@AE ?limina el 9tem o 9tems es$eci<icados del menG8 Si el arg#mento es #n
entero( es$eci<ica la $osicin del 9tem a eliminar8
Adici%n del ,en
Ubicar el c#rsor en la eti>#eta H39rameI( hacer clic en el botn derecho del ratn8 Se
des$legar el sig#iente menG <lotanteE
Ing8 Mart9n Salcedo :#i;ones !48
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Seleccionamos Add +orm Palette @en la versin en castellano debe decir Agregar desde
$aletaA( l#ego la o$cin S7ing , <inalmente 'Men#-ar8 La inter<a= >#e ese est
desarrollando ado$ta la sig#iente a$arienciaE
?n el $anel de Ins$ector @NavegadorA debe >#edar as9E
Ing8 Mart9n Salcedo :#i;ones !4
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Cambiamos el nombre de de j$an&Bar/ $or j$en&Bar8#rinci#al , j$en&/ $or
j$en&8archios8 Para esto #bicamos el c#rsor en la eti>#eta res$ectiva( se hace clic
botn derecho del mo#se , en el menG <lotante des$legado seleccionamos CAan0e
#ariable 'ame> ?l as$ecto del $anel Inspector @NavegadorA debe ser ahora el sig#ienteE
Cambiemos ahora el nombre >#e se des$liega en la barra del menG @Men#A8
Ubicamos el c#rsor en la eti>#eta el rbol de Ins$ector sobre &Men#Oarchivos8 Macer clic
botn derecho del mo#seJ en el menG <lotante des$legado( seleccionamos Pro$erties @en
castellano $ro$iedadesA8 Cambiamos en el c#adro des$legado en la $ro$iedad te=t( Men#
$or Archivos8 La inter<a= gr<ica ado$ta la sig#iente <ormaE
Ing8 Mart9n Salcedo :#i;ones !5"
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Procedemos a Agregar Ytems al menG Archivos8 Ubicamos el c#rsor en el rbol de
Inpector sobre &Men#Oarchivos8 Macer clic botn derecho del mo#se8 ?n el menG <lotante
des$legado seleccionemos Add Q 3,enuItem8
?l $anel ins$ector @navegadorA toma la sig#iente <ormaE
Ing8 Mart9n Salcedo :#i;ones !5!
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Cambiemos el nombre de &Men#Item4 $or &Men#ItemOabrir8
Si $rocedemos a com$ilar , e&ec#tar la a$licacin( vemos >#e al dar clic sobre el menG
ArcAi4os: se observar lo sig#ienteE
Cambiemos la cadena CItemD des$legada $or la cadena CAbrirD8 Ubi>#emos el c#rsor en el
Ing8 Mart9n Salcedo :#i;ones !52
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
rbol de Inspector sobre 'Men#ItemOabrirJ en el menG <lotante des$legado
seleccionemos Properties @$ro$iedadesA , cambiemos en el n#evo c#adro des$legado en
la $ro$iedad te=t( Item $or Abrir8 Al com$ilar , e&ec#tar la a$licacin , dando clic sobre el
menG ArcAi4os: se observar lo sig#ienteE
Re$etir el $rocedimiento antes e*$licado $ara agregar los 9temsE CG#ardarD e CIm$rimirD8
Las res$ectivas variables en el rbol o $anel de Ins$ector @NavegadorA lo cambiamos el
nombre $orE &Men#ItemOg#ardar , &Men#ItemOim$rimir8 N#evamente com$ilamos ,
e&ec#tamos la a$licacin8 ?l <orm#lario se m#estra de la sig#iente maneraE
?l $anel lnspector debe tener ahora el sig#iente as$ectoE
Ing8 Mart9n Salcedo :#i;ones !53
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Vamos a adicionar ms menGs a la barra de menGs8 ?n el rbol de Ins$ector #bicamos el
c#rsor sobre &Men#-ar , hacer clic botn derecho del mo#se8 ?n el menG <lotante
des$legado escoger Add 3,enu8 ?l as$ecto de Inspector es el sig#ienteE
?l as$ecto del dise;o del <orm#lario >#eda as9E
Ahora $rocedamos con el dise;o del menG dentro del dise;o del <orm#lario8 Al momento
de >#e lo e&ec#temos debe >#edar el dise;o del <orm#lario de la sig#iente <ormaE
Ing8 Mart9n Salcedo :#i;ones !54
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
S >#e el $anel Inspector tenga el sig#iente as$ectoE
Aplicaci%n adicional
Vamos a constr#ir #na a$licacin >#e $ermita e&ec#tar todas las a$licaciones $ro$#estas
en la )area . de la sesin CUso de los ob&etos 'Label( ')e*t+ield , '-#ttonD8 6icha tarea
contiene la <orm#lacin de c#atro a$licaciones8 Por lo tanto debemos constr#ir #n menG
c#,a o$cin en la barra de menG sea C)area .D , s#s 9tems deben ser CVenta de camisasD
$ara la $rimera a$licacin( CVenta de com$#tadoraD $ara la seg#nda a$licacin(
CConversionesD $ara la tercera a$licacin , CClc#loD $ara la c#arta a$licacin8 Una ve=
dise;ado el menG debemos $roceder a $rogramar $ara >#e sean invocados o e&ec#tados
desde la o$cin @9temA del menG8
Ing8 Mart9n Salcedo :#i;ones !55
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
$oluci%n:
!# Creamos #n $ro,ecto denominado 1bjetos$en&s8 L#ego( seleccionamos el
$a>#ete ob&etosmen#s , dando clic botn derecho del mo#se en la o$cin New
@N#evoA seleccionamos Form&lario JFrame8
Indicamos como nombre del <orm#lario <rmMen# , l#ego damos clic en 'erminar o
Finish8
2# ?stando en el entorno de desarrollo de Net-eans( en el $anel de Ins$ector
seleccionamos '+rame , damos clic botn derecho del mo#se seleccionamos
A"re"ar desde #aleta( l#ego (win" , $osteriormente Jmen&Bar8
Ing8 Mart9n Salcedo :#i;ones !56
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
3# Se crear #na barra de MenG con #na $rimera o$cin del ti$o 'men#8 Procedemos a
renombrarlo con J$en&'area2 , cambiarle el te*to como C'area 2D ,
$osteriormente creamos #n 'Men#Item8
4# 6ebemos crear % 'Men#Item dentro de &Men#)area.8 SegGn el en#nciado del
e&ercicio son % a$licaciones $ro$#estas en la )area .8 Procedemos a colocar los
te*tos a cada o$cin en la $ro$iedad )e*t , renombramos a cada ob&eto
'Men#Item8 ?n el $anel Ins$ector #bicado al lado i=>#ierdo del dise;o del
<orm#lario debe >#edar de la sig#iente maneraE
28 Si $rocedemos a e&ec#tar el <orm#lario <rmMen# debe tener la sig#iente a$arienciaE
Ing8 Mart9n Salcedo :#i;ones !57
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
18 Volviendo al entorno debemos crear % ob&etos del ti$o '+rame( #no $ara cada
o$cin o a$licacin de la )area .8
7# Una ve= $rogramado en cada <orm#lario las a$licaciones $ro$#estas en la )area .(
debemos invocar o e&ec#tar al momento de seleccionar la o$cin dentro del menG8
Para ello es necesario agregar $rogramacin en frm$en&8 Por e&em$lo si
>#eremos e&ec#tar el <orm#lario re<erido a Venta de Camisas c#,o <orm#lario se
denomina frm!amisas( tendr9amos >#e seleccionar el ob&eto J$en&-tem
corres$ondiente $ara indicar el evento a $rogramar8
Ing8 Mart9n Salcedo :#i;ones !58
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
38 A contin#acin( debemos colocar la sig#iente l9nea de $rogramacinE
Instanciamos con new #n ob&eto del ti$o <rmCamisas@A , $rocedemos a mostrarlo
con el mBtodo setVisible@tr#eA8
# 6ebemos tener claro >#e #n <orm#lario c#ando es invocado desde #n menG al
momento de ser cerrado a travBs de #n botn de comando >#e $#ede llamarse
Cerrar o Salir ,a no deber9amos #sar el mBtodo dis$ose@A( sino ms bien hide@A8
?ste mBtodo hide@A solo oc#lta el <orm#lario act#al , no cierra al <orm#lario >#e
contiene el menG8 Adems es necesario establecer los valores de los mBtodos
set(i7e+, , set)ocation+, del '+rame $ara hacer >#e la e&ec#cin de los
<orm#larios al momento de ser vis#ali=ados sea la ms adec#ada8
Ing8 Mart9n Salcedo :#i;ones !5
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
O237TO$ ,7'U$ 3(A)IO2UTTO',7'UIT7,:
3$7PA(ATO( y 3,7'U
,ens desple0ables
Una barra de menG contiene #no o ms menGs( , tiene #na $osicin de$endiente de la
$lata<orma HH normalmente deba&o de la $arte s#$erior de la ventana8 Un menG
des$legable es #n menG >#e es invisible hasta >#e el #s#ario hace #na accin del ratn
es$ec9<ica de la $lata<orma( como $#lsar el botn derecho del ratn sobre #n com$onente8
?ntonces el menG des$legable a$arece ba&o el c#rsor8
Crear y con8i0urar 2arras de ,en
MBtodosE
'Men#-ar@AE Crea #na barra de MenG8
set'Men#-ar@AE Selecciona la barra de menG de #n +rame interno8
get'Men#-ar@AE Obtiene la barra de menG de #n +rame interno
Crear y rellenar ,ens
Ing8 Mart9n Salcedo :#i;ones !6"
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
MBtodosE
'men#@AE Crea #n MenG a $artir de #na o$cin de la barra8
add@'Men#ItemAE Crea #n 9tem de menG al <inal del menG8
insert@AE Inserta #n 9tem de menG o #n se$arador de menG( en la $osicin
es$eci<icada8
Remove@AE?limina el 9tem o 9tems es$eci<icados del menG8 Si el arg#mento es #n
entero( es$eci<ica la $osicin del 9tem a eliminar8
AddSe$arator@AE A;ade #n se$arador al <inal del menG des$legable8
Implementar Items de ,en
MBtodosE
'Men#Item@AE Crea #n 9tem en #n menG normal8
'Chec/-o*Men#ItemE Crea #n 9tem de menG >#e se $arece , actGa como #n
chec/bo*8
'Radio-#ttonMen#ItemE Crea #n 9tem de menG >#e se $arece , actGa como #n
radio b#ttom8 Se $#ede hacer #so de #n 9cono8
set?nabled@AE Si el arg#mento es tr#e: activa el 9tem de menG( si es <alse lo
desactiva8
Uso de la clase (adio2utton
Los Botones de Radio son grupos de botones en los que, por convencin, slo uno de
ellos puede estar seleccionado. Swing soporta botones de radio con las clases
JRadioButton y ButtonGroup. Para poner un botn de radio en un men, se utili!a la
clase JRadioButtonMenuItem. Los botones de radio tienen #n as$ecto similar a los
chec/bo*es( $ero( $or convencin( los chec/bo*es no tienen l9mites sobre c#ntos 9tems
$#eden estar seleccionados a la ve=8 Como 3(adio2utton desciende de
Abstract2utton( los botones de radio S7ing tienen todas las caracter9sticas de los
botones normales8
A>#9 $odemos ver #na imagen de #na a$licacin >#e #tili=a cinco botones de radio $ara
elegir >#B ti$o de mascota mostrarE
Uso de la clase CAec52o=
La versin Swing soporta botones J"#ec$Bo% con la clase J"#ec$Bo%, Swing tambi&n
soporta c#ec$bo%es en mens, utili!ando la clase J"#ec$Bo%'enu(tem. "omo
Ing8 Mart9n Salcedo :#i;ones !6!
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
JCheckBox y JCheckBoxMenuItem descienden de AbstractButton, los c#ec$bo%es de
Swing tienen todas las caracter)sticas de un botn normal
Adicionar items dentro de los tems
?n la sesin anterior @)ema 4!A( est#vimos desarrollando el dise;o de #n menG >#e >#ed
s# $anel de ins$ector de la sig#iente maneraE
Ahora vamos a constr#ir #n tercer menG algo ms com$le&o8 La a$licacin #na ve=
terminado deber tener las sig#ientes <ormasE
Ing8 Mart9n Salcedo :#i;ones !62
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Ing8 Mart9n Salcedo :#i;ones !63
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
S el $anel Ins$ector debe ado$tar la sig#iente <ormaE
Ing8 Mart9n Salcedo :#i;ones !64
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Para lograr esto es necesario adicionar dentro de los 'Men# ms 'Men#s8 Slo los
Gltimos $ara adicionar en cada rama del rbol del $anel Inspector sern los 'Men#Item8
Re$etir el $aso Anterior $ara >#e la a$licacin #na ve= e&ec#tada ado$te la sig#iente
<ormaE
S el $anel Ins$ector se enc#entre en el sig#iente estadoE
Ing8 Mart9n Salcedo :#i;ones !65
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Aplicaci%n "
Vamos a constr#ir #na a$licacin >#e $ermita dise;ar #na barra de menG( siendo la
o$cin $rinci$al @constr#ido a $artir de #n ob&eto 'Men#A llamada COb&etos de ControlD8 A
$artir de Bsta o$cin creas items #sando 'Men#Items $ara las o$cionesE C)area .D(
C)area"D( C)area%D( )area 2D , C)area 1D8 Para la o$cin C)area .D de<ines c#atro 9tems >#e
indi>#enE CVentas de CamisasD( CVentas de Com$#tadorasD( CConversionesD , CClc#loD8
La tarea . contiene la <orm#lacin de c#atro a$licaciones8 Una ve= dise;ado el menG
debemos $roceder a $rogramar $ara >#e sean invocados o e&ec#tados desde la o$cin
@9temA del menG8
$oluci%n:
!# Creamos #n $ro,ecto denominado $en&s1bjetos8 L#ego( seleccionamos el
$a>#ete men#sob&etos , dando clic botn derecho del mo#se en la o$cin New
@N#evoA seleccionamos Form&lario JFrame8
Ing8 Mart9n Salcedo :#i;ones !66
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Indicamos como nombre del <orm#lario <rmMen# , l#ego damos clic en 'erminar o
Finish8
2# ?stando en el entorno de desarrollo de Net-eans( en el $anel de Ins$ector
seleccionamos '+rame , damos clic botn derecho del mo#se seleccionamos
A"re"ar desde #aleta( l#ego (win" , $osteriormente Jmen&Bar8
3# Se crear #na barra de MenG con #na $rimera o$cin del ti$o 'Men#8 Procedemos a
renombrarlo con J$en&1bjetos!ontrol , cambiarle el te*to como C1bjetos de
!ontrolD , $osteriormente creamos #n 'Men#Item8
Ing8 Mart9n Salcedo :#i;ones !67
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
4# 6ebemos crear 2 del ti$o J$en& dentro de j$en&1bjetos!ontrol8 SegGn el
en#nciado del e&ercicio son 2 o$cionesE C)area .D( C)area "D( C)area %D( C)area 2D ,
C)area 1D8 Procedemos a colocar los te*tos a cada o$cin en la $ro$iedad )e*t ,
renombramos a cada ob&eto J$en&8 ?n el $anel Ins$ector #bicado al lado
i=>#ierdo del dise;o del <orm#lario debe >#edar de la sig#iente maneraE
Ing8 Mart9n Salcedo :#i;ones !68
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
28 Si $rocedemos a e&ec#tar el <orm#lario <rmMen# debe tener la sig#iente a$arienciaE
6# Volviendo al entorno de Net-eans debemos crear los % items del ti$o 'Men#Item
dentro de la o$cin J$en&'area2. ?n el $anel Ins$ector debe >#edar de la
sig#iente maneraE
58 Si $rocedemos n#evamente a e&ec#tar el <orm#lario <rmMen# debe tener la
Ing8 Mart9n Salcedo :#i;ones !6
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
sig#iente a$arienciaE
8# Volviendo n#evamente al entorno de Net-eans debemos crear los % item ob&etos
del ti$o '+rame( #no $ara cada o$cin o a$licacin de la o$cin de J$en&'area 28
# Una ve= $rogramado en cada <orm#lario las a$licaciones $ro$#estas en la )area .(
debemos invocar o e&ec#tar al momento de seleccionar la o$cin dentro del menG8
Para ello es necesario agregar $rogramacin en frm$en&8 Por e&em$lo si
>#eremos e&ec#tar el <orm#lario re<erido a Venta de Camisas c#,o <orm#lario se
denomina frm!amisas( tendr9amos >#e seleccionar el ob&eto J$en&-tem
corres$ondiente $ara indicar el evento a $rogramar8
Ing8 Mart9n Salcedo :#i;ones !7"
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
4!8 A contin#acin( debemos colocar la sig#iente l9nea de $rogramacinE
Instanciamos con new #n ob&eto del ti$o <rmCamisas@A , $rocedemos a mostrarlo
con el mBtodo setVisible@tr#eA8
!!# 6ebemos tener $resente >#e #n <orm#lario c#ando es invocado desde #n menG al
momento de ser cerrado a travBs de #n botn de comando >#e $#ede llamarse
Cerrar o Salir ,a no deber9amos #sar el mBtodo dis$ose@A( sino ms bien hide@A8
?ste mBtodo hide@A solo oc#lta el <orm#lario act#al , no cierra al <orm#lario >#e
contiene el menG8 Adems es necesario establecer los valores de los mBtodos
set(i7e+, , set)ocation+, del '+rame $ara hacer >#e la e&ec#cin de los
<orm#larios al momento de ser vis#ali=ados sea la ms adec#ada8
Aplicaci%n B
Vamos hacer #so de los ob&etos 'Radio-#ttonMen#Item , 'Chec/-o*Men#Item8 ?n esta
o$ort#nidad la a$licacin ser desarrollada #sando $#ra $rogramacin8
Sol#cinE
!# Procedemos a crear #n archivo de e*tensin &ava8 ?stando en #n $ro,ecto
Men#Ob&etos , seleccionado el $a>#ete men#ob&etos( damos clic botn derecho
del mo#se , seleccionamos 'ava class8
Ing8 Mart9n Salcedo :#i;ones !7!
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
.8 A$arece la ventana $ara de<inir el nombre del archivo de e*tensin &ava8 Vamos a
denominarlo Pr#ebaMen#8
L#ego damos clic en el botn de comando 'erminar @FinishA
"8 Agregamos los $a>#etes sig#ientes @deba&o del $ac/age men#sob&etosA8
4# Agregamos la e*$resin e=tends 39rame en $#blic class Pr#ebaMen#8
Ing8 Mart9n Salcedo :#i;ones !72
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
28 Vamos a $roceder a agregar la $rogramacin( <i&Bmonos en los comentarios
colocados con FF >#e nos $ermitirn com$render el cdigo de la $rogramacin8
public class +rueba0enu extends *8rame{
//definimos los atributos de la clase PruebaMenu
private 4inal 3olor valores3olor"#){3olor.black(3olor.blue(3olor.red(3olor.green 2;
private *Oadio5utton0enu%tem elementos3olor"#( tipos6etra"#;
private *3heck5ox0enu%tem elementos'stilo"#;
private *6abel pantalla'ti7ueta;
private 5uttonProup grupoTipos6etra( grupo3olores;
private int estilo;
/** Creates a new instance of PruebaMenu */
public +rueba0enu$
{
// establece el titulo del formulario
super -Fso de objetos *0enu- $;
// establecer men Archivo y sus elementos de men
*0enu menuArchivo ) new *0enu -Archivo- $;
menuArchivo.set0nemonic QAQ $;
// establecer elemento de men Acerca de...
*0enu%tem elementoAcerca ) new *0enu%tem -Acerca de...- $;
elementoAcerca.set0nemonic QcQ $;
menuArchivo.add elementoAcerca $;
elementoAcerca.addAction6istener
new Action6istener$ { // clase interna annima
// mostrar cuadro de dilogo de mensaje cuando el usuario seleccione Acerca de...
public void action+er4ormed Action'vent evento $
{
*&ption+ane.show0essage,ialog +rueba0enu.this(
-Rste es un ejemploSndel uso de menTs-(
-Acerca de-( *&ption+ane.+6A%GU0'!!AP' $;
2
2 // fin de la clase interna annima
$; // fin de la llamada a addAction!istener

// establecer elemento de men "alir
*0enu%tem elemento!alir ) new *0enu%tem -!alir- $;
elemento!alir.set0nemonic Q!Q $;
menuArchivo.add elemento!alir $;
elemento!alir.addAction6istener
new Action6istener$ { // clase interna annima
// terminar la a#licacin cuando el usuario haga clic en elemento"alir
public void action+er4ormed Action'vent evento $
{
!Jstem.exit ; $;
2
2 // fin de la clase interna annima
$; // fin de la llamada a addAction!istener
// crear barra de mens y adjuntarla a la ventana PruebaMenu
*0enu5ar barra ) new *0enu5ar$;
set*0enu5ar barra $;
barra.add menuArchivo $;
// crear men $ormato% con sus submens y elementos de men
Ing8 Mart9n Salcedo :#i;ones !73
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
*0enu menu8ormato ) new *0enu -8ormato- $;
menu8ormato.set0nemonic Q8Q $;
// crear submen Color
!tring colores"# ) { -Gegro-( -A9ul-( -Oojo-( ->erde- 2;
*0enu menu3olor ) new *0enu -3olor- $;
menu3olor.set0nemonic Q3Q $;
elementos3olor ) new *Oadio5utton0enu%tem" colores.length #;
grupo3olores ) new 5uttonProup$;
0anejador'ventos manejador'ventos ) new 0anejador'ventos$;
// crear elementos de men ti#o botones de o#cin #ara el men Color
4or int cuenta ) ;; cuenta V colores.length; cuenta11 $ {
elementos3olor" cuenta # ) new *Oadio5utton0enu%tem colores" cuenta # $;
menu3olor.add elementos3olor" cuenta # $;
grupo3olores.add elementos3olor" cuenta # $;
elementos3olor" cuenta #.addAction6istener manejador'ventos $;
2
// seleccionar #rimer elemento del men Color
elementos3olor" ; #.set!elected true $;
// agregar el men $ormato a la barra de mens
menu8ormato.add menu3olor $;
menu8ormato.add!eparator$;
// crear submen &i#o de letra
!tring nombresTipos6etra"# ) { -!eri4-( -0onospaced-( -!ans!eri4- 2;
*0enu menuTipos6etra ) new *0enu -Tipo de letra- $;
menuTipos6etra.set0nemonic QTQ $;
tipos6etra ) new *Oadio5utton0enu%tem" nombresTipos6etra.length #;
grupoTipos6etra ) new 5uttonProup$;
// crear elementos de men ti#o botones de o#cin #ara el men &i#os de letra
4or int cuenta ) ;; cuenta V tipos6etra.length; cuenta11 $ {
tipos6etra" cuenta # ) new *Oadio5utton0enu%tem nombresTipos6etra" cuenta # $;
menuTipos6etra.add tipos6etra" cuenta # $;
grupoTipos6etra.add tipos6etra" cuenta # $;
tipos6etra" cuenta #.addAction6istener manejador'ventos $;
2
// seleccionar el #rimer elemento del men &i#o de letra
tipos6etra" ; #.set!elected true $;
menuTipos6etra.add!eparator$;
// establecer elementos del men 'stilo
!tring nombres'stilo"# ) { -Gegrita-( -3ursiva- 2;
elementos'stilo ) new *3heck5ox0enu%tem" nombres'stilo.length #;
0anejador'stilo manejador'stilo ) new 0anejador'stilo$;
// crear elementos de men ti#o casilla de verificacin #ara el men 'stilo
4or int cuenta ) ;; cuenta V nombres'stilo.length; cuenta11 $ {
elementos'stilo" cuenta # )
new *3heck5ox0enu%tem nombres'stilo" cuenta # $;
menuTipos6etra.add elementos'stilo" cuenta # $;
elementos'stilo" cuenta #.add%tem6istener manejador'stilo $;
2
// colocar men &i#o de letra en el men $ormato
menu8ormato.add menuTipos6etra $;
// agregar men $ormato a la barra de mens
barra.add menu8ormato $;

// establecer eti(ueta #ara mostrar te)to
pantalla'ti7ueta ) new *6abel -+rogramaciKn >isual-( !wing3onstants.3'GT'O $;
pantalla'ti7ueta.set8oreground valores3olor" ; # $;
Ing8 Mart9n Salcedo :#i;ones !74
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
pantalla'ti7ueta.set8ont new 8ont -!eri4-( 8ont.+6A%G( @/ $ $;
get3ontent+ane$.set5ackground 3olor.3WAG $;
get3ontent+ane$.add pantalla'ti7ueta( 5order6aJout.3'GT'O $;
set!i9e ?<;( /;; $;
set>isible true $;
2

public static void main !tring args"# $
{
*8rame.set,e4ault6ookAnd8eel,ecoratedtrue$;
+rueba0enu aplicacion ) new +rueba0enu$;
aplicacion.set,e4ault3lose&peration *8rame.'X%TU&GU36&!' $;
2
// clase interna #ara manejar eventos de accin de los elementos de men
private class 0anejador'ventos implements Action6istener {
// #rocesar selecciones de color y ti#o de letra
public void action+er4ormed Action'vent evento $
{
// #rocesar seleccin de color
4or int cuenta ) ;; cuenta V elementos3olor.length; cuenta11 $

i4 elementos3olor" cuenta #.is!elected$ $ {
pantalla'ti7ueta.set8oreground valores3olor" cuenta # $;
break;
2

// #rocesar seleccin de ti#o de letra
4or int cuenta ) ;; cuenta V tipos6etra.length; cuenta11 $
i4 evento.get!ource$ )) tipos6etra" cuenta # $ {
pantalla'ti7ueta.set8ontnew 8ont tipos6etra" cuenta #.getText$( estilo( @/ $ $;
break;
2
repaint$;
2 // fin del m*todo actionPerformed
2 // fin de la clase Manejador'ventos

// clase interna #ara manejar eventos de los elementos de men ti#o casilla de verificacin
private class 0anejador'stilo implements %tem6istener {
// #rocesar selecciones de estilo de ti#o de letra
public void item!tate3hanged %tem'vent e $
{
estilo ) ;;
// checar seleccin de negrita
i4 elementos'stilo" ; #.is!elected$ $
estilo 1) 8ont.5&6,;
// checar seleccin de cursiva
i4 elementos'stilo" B #.is!elected$ $
estilo 1) 8ont.%TA6%3;
pantalla'ti7ueta.set8ont
new 8ont pantalla'ti7ueta.get8ont$.getGame$( estilo( @/ $ $;
repaint$;
2
2 // fin de la clase Manejador'stilo

2 // fin de la clase PruebaMenu
Ing8 Mart9n Salcedo :#i;ones !75
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
6# ?&ec#tamos el archivo Pr#ebaMen#8&ava8
58 Ordenado la e&ec#cin veremos la sig#iente ventana8
AUTO7#ALUACIO'
aC (esponde a las si0uientes pre0untas:
48 Los ob&etos contenedores se denominan as9 $or>#e $ermite contener a s# ve= a otros
ob&etos8 @verdadero o <alsoA OOOOOOOOOOOOOOOO8
.8 Permite >#e se $#eda crear #na o$cin en el menG , >#e se com$orte como
'Radio-#ttom( es el ob&eto OOOOOOOOOOOOOOOOOOOOOOOOO
"8 ?l mBtodo setSi=e@A $ermite establecer el tama;o de #n ob&eto del ti$o '+rame8
@verdadero o <alsoA OOOOOOOOOOOOOOOOOO
%8 ?l mBtodo sho7@A $ermite hacer visible #n <orm#lario @verdadero o <alsoA
OOOOOOOOOOOOOOOO
28 ?l mBtodo set)itle@A se #sa $ara establecer el t9t#lo en la barra s#$erior de #n <orm#lario
@verdadero o <alsoA OOOOOOOOOOOOOOOOOOO
Ing8 Mart9n Salcedo :#i;ones !76
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
bC )esarrolla las si0uientes aplicaciones:
48 Constr#,e #na a$licacin >#e $ermita ingresar % notas $or al#mno8 ?l $romedio debe
ser ig#al al $romedio de las % notas( d#$licando la nota ma,or , dividido entre 28
Ingresar datos de varios al#mnos , en seg#ndo <orm#lario mostrar el al#mno con
ma,or $romedio o el al#mno de menor $romedio8 Pro$one tG mismo el dise;o de los
<orm#larios8
.8 Usando la a$licacin anterior a$lica el ingreso de las notas de los al#mno en #na <icha
@)abA( en #na seg#nda <icha se m#estre las notas de los al#mnos con s#s res$ectivos
$romedios , en #na tercera <icha se $#eda seleccionar la o$cin de mostrar el al#mno
con ma,or $romedio o mostrar el al#mno con menor $romedio8 Usa el ob&eto
')abbedPane8
"8 Usando los ob&etos del $a>#ete s7ing MenGs( constr#,e #n menG >#e invo>#e o >#e
se $#eda e&ec#tar las dos a$licaciones anteriores8
Ing8 Mart9n Salcedo :#i;ones !77
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
CAPITULO IV
SISTEMAS DE APLICACION
Ing8 Mart9n Salcedo :#i;ones !78
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
CO'$T(UCCIO' )7 U' $I$T7,A )7 APLICACIO'
Introducci%n
>amos a proceder a crear un sistema de aplicaciKn. 'n base a los conocimientos
ad7uiridos simularemos un sistema de aplicaciKn( pero mNs adelante en desarrollo de
otros cursos se crearNn aplicaciones usando base de datos. Iaremos uso de los
objetos aprendidos en las sesiones anteriores como tambiYn manejo de atributos J
mYtodos de clases. AdemNs haremos uso de estructuras de datos llamadas arreglos.
'l caso 7ue trataremos es sobre cuentas de ahorros J 3T! de un 5anco( J lo
desarrollaremos en dos etapas. 'n este tema o sesiKn haremos la primera etapa J en
la Tltima sesiKn completaremos el desarrollo del caso.
CA$O: 2anco J Cuentas
Ing8 Mart9n Salcedo :#i;ones !7
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Un banco o<rece los $rod#ctos de ahorros en soles( ahorros en dlares( C)S en soles ,
C)S en dlares8 Un cliente $#ede slo tener #na c#enta de c#al>#ier $rod#cto antes
mencionado8 Observemos el sig#iente dise;oE
Para a$ert#rar #na c#enta debemos ingresar los a$ellidos , los nombres del cliente( l#ego
al dar clic en #n botn de comando -#scar $rocedemos a la bGs>#eda de los datos en la
estr#ct#ra de datos o arreglo8 Si no se enc#entra los datos $rocedemos a ingresar la
direccin , el nGmero de doc#mento de identidad , si e*iste los datos del cliente(
entonces se m#estra el nGmero de doc#mento de identidad , el nGmero de tar&eta8 ?l
nGmero de tar&eta se inicia con los d9gitos 2533 seg#ido del nGmero del doc#mento de
identidad8 Cabe se;alar si los datos del cliente ,a e*isten se debe inhabilitar el #so de los
ob&etos 'Radio-#tton res$ecto a las c#entas >#e ,a tiene el cliente8 Si es #n n#evo cliente
se habilitarn todos los ob&etos re<eridos a los ti$os de c#entas8 Una ve= indicado los
datos $rocedemos a grabar los datos( lo c#al im$lica insertar los datos en el ob&eto )able
como tambiBn en la estr#ct#ra de datos o arreglo8 ?l ob&eto )able se enc#entra en la
seg#nda $esta;a CC#entas A$ert#radasD del ob&eto ')abbedPanel8
Ing8 Mart9n Salcedo :#i;ones !8"
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
?l botn de comando Cancelar es $ara s#s$ender el $roceso de a$ert#ra de c#enta
haciendo lim$iar los ob&etos de control , el botn de comando Cerrar es $ara oc#ltar la
ventana8
Veamos el dise;o del <orm#lario de O$eraciones -ancarias >#e tambiBn est con<ormado
$or #n ob&eto ')abbedPanel >#e contiene dos )ab( es decir( mane&a dos $esta;as8 La
$rimera $esta;a tiene el sig#iente dise;oE
Ing8 Mart9n Salcedo :#i;ones !8!
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
La seg#nda $esta;a tiene el sig#iente dise;oE
Ing8 Mart9n Salcedo :#i;ones !82
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Para las o$eraciones o transacciones bancarias se inicia con ingresar el nGmero de tar&eta
@recordemos >#e el nGmero de tar&eta se inicia con 2533( seg#ido del nGmero de
doc#mento de identidadA8 L#ego al dar clic en el botn de comando -#scar hacemos la
bGs>#eda de la c#enta en el arreglo o estr#ct#ra de datos8 Si enc#entra el nGmero de
tar&eta $rocedemos a vis#ali=ar los a$ellidos , nombres del cliente , se habilitan a los
ob&etos 'Radio-#tton de las c#entas >#e tiene el cliente8 Si no se enc#entra el nGmero de
tar&eta $rocedemos a mostrar #n mensa&e de error8 A contin#acin se selecciona #na
c#enta , el ti$o de o$eracin @Retiro o 6e$sitoA e ingresamos el monto de la o$eracin8
Al dar clic en el botn de comando Procesar grabaremos o insertamos los datos en el
ob&eto )able @ob&eto >#e se m#estra en la seg#nda $esta;aA , en la estr#ct#ra de datos o
arreglo8 Cabe se;alar >#e el #so de los arreglos es $ara salvar los datos ,a >#e al cerrar
la ventana los datos contenidos en el ob&eto ')able se $ierden , c#ando se v#elve a
mostrar n#evamente la ventana los datos contenidos en los arreglos se llenan en el ob&eto
')able8
)anto la ventana o <orm#lario de A$ert#ra de C#entas como la ventana o <orm#lario de
O$eraciones -ancarias sern invocados o e&ec#tados desde las o$ciones de #n menG(
c#,o dise;o es el sig#ienteE
Ing8 Mart9n Salcedo :#i;ones !83
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
$oluci%n:
!# Creamos #n $ro,ecto denominado CasoObanco8 L#ego estando en el entorno de
Net-eans( seleccionamos el $a>#ete caso8banco , dando clic botn derecho del
mo#se( se m#estra #n menG <lotante( donde seleccionamos +orm#lario '+rame8
2# A contin#acin( colocaremos como nombre de <orm#lario frm$en&8
L#ego dar clic en el botn de comando Finish @en caso de >#e la versin de
Ing8 Mart9n Salcedo :#i;ones !84
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Net-eans es en castellano entonces dar clic en el botn de comando 'erminarA
3# ?stando en el entorno de desarrollo de Net-eans( en el $anel de Ins$ector
seleccionamos '+rame , damos clic botn derecho del mo#se seleccionamos
A"re"ar desde #aleta( l#ego (win" , $osteriormente J$en&Bar8
4# Se crea #na barra de MenG con #na $rimera o$cin del ti$o 'Men#8 Procedemos a
renombrarlo con J$en&Procesos , cambiarle el te*to como CProcesosD8
Ing8 Mart9n Salcedo :#i;ones !85
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
28 Procedemos a agregar dos ob&etos del ti$o 'Men#Item8 ?stas o$ciones del menG
indicarnE CA$ert#ra de C#entasD , CO$eraciones -ancariasD8 ?l $anel de Ins$ector
debe >#edar as9E
18 Si $rocedemos a e&ec#tar lo avan=ado hasta el momento se debe vis#ali=ar lo
sig#ienteE
58 Ahora( vamos a $roceder a crear el <orm#lario $ara a$ert#ra de c#entas8 Creamos
#n ob&eto '+rame8
Ing8 Mart9n Salcedo :#i;ones !86
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
8# Le damos como nombre al <orm#lario 8rmApertura8
L#ego dar clic en el botn de comando Finish @en caso de >#e la versin de
Net-eans es en castellano entonces dar clic en el botn de comando 'erminarA
# Se m#estra el entorno de desarrollo de Net-eans , no olvidemos de dar clic en el
botn derecho del mo#se sobre el <orm#lario , establece Absol&te )ayo&t en
(et)ayo&t8
Ing8 Mart9n Salcedo :#i;ones !87
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
4!8 Iniciamos el dise;o del <orm#lario colocando #n ob&eto 'Label , ')abbedPanel8
Creamos la $rimera $esta;a con la e*$resin CA$ert#ra de C#entasD8
!!# Procedemos a colocar Absol&te )ayo&t en la o$cin (et )ayo&t c#ando #semos
el botn derecho del mo#se sobre el 'ab/.
Ing8 Mart9n Salcedo :#i;ones !88
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
!2# Colocamos #n ob&eto '6es/to$Panel( cambiamos el color a #n amarillo claro ,
l#ego $onemos #n ob&eto 'Panel( el c#al debe tener #n borde , #n t9t#lo con la
e*$resin CIn<ormacin del ClienteD8 Al ob&eto 'Panel debemos establecer Absol&te
)ayo&t en (et)ayo&t.
Ing8 Mart9n Salcedo :#i;ones !8
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
!3# Contin#amos con el dise;o del <orm#lario8 6ebemos crear #n seg#ndo ob&eto
'Panel dentro del )ab4 , establecer Absol&te )ayo&t en (et)ayo&t8
4%8 Procedamos a colocar nombres a los ob&etos de control de la $rimera $esta;a8
Ing8 Mart9n Salcedo :#i;ones !"
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
!5# Vamos a dise;ar la seg#nda $esta;a8 Procedemos a colocar Absol&te )ayo&t en
la o$cin (et )ayo&t c#ando #semos el botn derecho del mo#se sobre el 'ab2.
Ing8 Mart9n Salcedo :#i;ones !!
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
418 ?l dise;o del <orm#lario $ara la seg#nda $esta;a debe >#edar as9E
458 Pasemos a dise;ar el <orm#lario $ara las o$eraciones bancarias8 Creamos #n
ob&eto '+rame8
!8# Le damos como nombre al <orm#lario 8rmOperaciones8
Ing8 Mart9n Salcedo :#i;ones !2
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
L#ego dar clic en el botn de comando Finish @en caso de >#e la versin de
Net-eans es en castellano entonces dar clic en el botn de comando 'erminarA
!# Se m#estra el entorno de desarrollo de Net-eans , no olvidemos de dar clic en el
botn derecho del mo#se sobre el <orm#lario , establece Absol&te )ayo&t en
(et)ayo&t.
2"# Iniciamos el dise;o del <orm#lario colocando #n ob&eto 'Label , ')abbedPanel8
Ing8 Mart9n Salcedo :#i;ones !3
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Creamos la $rimera $esta;a con la e*$resin CO$eraciones -ancariasD ,
$rocedemos a colocar Absol&te )ayo&t en la o$cin (et )ayo&t c#ando #semos
el botn derecho del mo#se sobre el 'ab/.
2!# Colocamos #n ob&eto '6es/to$Panel( cambiamos el color a #n amarillo claro ,
l#ego $onemos #n ob&eto 'Panel( el c#al debe tener #n borde , #n t9t#lo con la
e*$resin CIn<ormacin del ClienteD8 Al ob&eto 'Panel debemos establecer Absol&te
)ayo&t en (et)ayo&t.
Ing8 Mart9n Salcedo :#i;ones !4
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
22# Contin#amos con el dise;o del <orm#lario8 6ebemos crear #n seg#ndo ob&eto
'Panel dentro del )ab4 , establecer Absol&te )ayo&t en (et)ayo&t.
."8 Procedamos a colocar nombres a los ob&etos de control de la $rimera $esta;a8
Ing8 Mart9n Salcedo :#i;ones !5
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
24# Vamos a dise;ar la seg#nda $esta;a8 Procedemos a colocar Absol&te )ayo&t en
la o$cin (et )ayo&t c#ando #semos el botn derecho del mo#se sobre el 'ab28
.28 ?l dise;o del <orm#lario $ara la seg#nda $esta;a debe >#edar as9E
Ing8 Mart9n Salcedo :#i;ones !6
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
.18 Procedamos a $rogramar en cada #no de los <orm#larios8
CODIGO DEL FORMULARIO frMe!"
public class 4rm0enu extends javax.swing.*8rame {
//creacin de atributos de tipo arreglo y entero
public static !tring valores"#"#)new !tring "B;;#"<#;
public static !tring movimientos"#"#)new !tring "B;;#"=#;
public static int registros)CB;
public static int 4ilas)CB;

//mtodo para asignar datos al arreglo valores
public void set>aloresint 4(!tring dB( !tring d/( !tring dH( !tring d:( !tring d<$
{
valores"4#";#)dB;
valores"4#"B#)d/;
valores"4#"/#)dH;
valores"4#"H#)d:;
valores"4#":#)d<;
2

//mtodo para obtener un dato dado el valor de los ndices del elemento del arreglo
public !tring get>aloresint 4( int c$
{
return valores"4#"c#;
2

//mtodo que actualiza el saldo de la cuenta
public void setActuali9a!aldoint 4( !tring s$
{
valores"4#":#)s;
2

//mtodo que actualiza el valor de filas que controla al arreglo valores
public void set8ilasint 4$
{
4ilas)4;
2

//mtodo que perimte obtener el valor del atributo filas
public int get8ilas$
{
return 4ilas;
2

//mtodo para asignar datos al arreglo movimeintos
public void set0ovimientosint 4(!tring dB( !tring d/( !tring dH( !tring d:( !tring d<( !tring d=$
{
movimientos"4#";#)dB;
movimientos"4#"B#)d/;
movimientos"4#"/#)dH;
movimientos"4#"H#)d:;
movimientos"4#":#)d<;
movimientos"4#"<#)d=;
2

//mtodo para obtener un dato dado el valor de los ndices de un elemento
public !tring get0ovimientosint 4( int c$
{
return movimientos"4#"c#;
2

//mtodo que actualiza el valor de registros que controla el arreglo movimientos.
public void setOegistrosint 4$
{
registros)4;
2

//mtodo para obtener el valor del atributo registros
public int getOegistros$
{
return registros;
Ing8 Mart9n Salcedo :#i;ones !7
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
2
//mtodo constructor
public 4rm0enu$ {
init3omponents$;
this.set!i9e?;;(@;;$;
2
private void j0enu%tem&peracionesAction+er4ormedjava.awt.event.Action'vent evt$ {
new 4rm&peraciones$.set>isibletrue$;
2
private void j0enu%temApertura3uentasAction+er4ormedjava.awt.event.Action'vent evt$ {
new 4rmApertura$.set>isibletrue$;
2
CODIGO DEL FORMULARIO frApert"ra
package casoUbanco;
import javax.swing.*&ption+ane.*;
import javax.swing.*;
import javax.swing.table.*;
public class 4rmApertura extends javax.swing.*8rame {
,e4aultTable0odel dtm)new ,e4aultTable0odel$;
//instanciar fmenu a partir de la clase frmMenu
4rm0enu 4menu)new 4rm0enu$;
/** 3reates new 4orm 4rmApertura */
//mtodo constructor
public 4rmApertura$ {
init3omponents$;
!tring titulos"#){-Gro Tarjeta-(-Apellidos-(-Gombres-(-Tipo 3uenta-(-!aldo Actual-2;
dtm.set3olumn%denti4ierstitulos$;
this.uso&bjetosOadio4alse$;
Tabla3uentas.set0odeldtm$;
this.llenarTabla$;
btnPrabar.set'nabled4alse$;
this.set6ocationB/;(B/;$;
txtApe.re7uest8ocus$;
2

//mtodo para llenar de filas a la TablaCuentas
public void llenarTabla$
{
int 4( i;
4)4menu.get8ilas$;
!tring datos"#)new !tring"<#;
i4 4Z);$
{
4or i);;iV)4;i11$
{
datos";#)4menu.get>aloresi(;$;
datos"B#)4menu.get>aloresi(B$;
datos"/#)4menu.get>aloresi(/$;
datos"H#)4menu.get>aloresi(H$;
datos":#)4menu.get>aloresi(:$;
dtm.addOowdatos$;
2

2
2
public void limpiar&bjetos$
{
txtApe.setText--$;
txtGom.setText--$;
txt,ir.setText--$;
txt,oc.setText--$;
txtGroTar.setText--$;
txt!aldo%nicial.setText--$;
2
Ing8 Mart9n Salcedo :#i;ones !8
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote

public void uso&bjetosTextoboolean accion$
{
txt,ir.set'nabledaccion$;
txt,oc.set'nabledaccion$;
2

public void uso&bjetosOadioboolean accion$
{
rbAhorro!oles.set'nabledaccion$;
rbAhorro,olares.set'nabledaccion$;
rb3T!soles.set'nabledaccion$;
rb3T!dolares.set'nabledaccion$;
2
private void btn3ancelarAction+er4ormedjava.awt.event.Action'vent evt$ {
this.limpiar&bjetos$;
this.uso&bjetosTexto4alse$;
this.uso&bjetosOadio4alse$;
btnPrabar.set'nabled4alse$;
txtApe.re7uest8ocus$;
2
private void btnPrabarAction+er4ormedjava.awt.event.Action'vent evt$ {
!tring datos"#)new !tring"<#;
int 4ilas;
boolean veri4ica;
i4 txtApe.getText$.length$));$
{
*&ption+ane.show0essage,ialognull(-%ngresa el Apellido del 3liente-$;
return;
2
i4 txtGom.getText$.length$));$
{
*&ption+ane.show0essage,ialognull(-%ngresa el Gombre del 3liente-$;
return;
2
i4 txt,oc.getText$.length$));$
{
*&ption+ane.show0essage,ialognull(-%ngresa el GTmero del ,ocumento de %dentidad del 3liente-$;
return;
2
veri4ica)rbAhorro!oles.is!elected$ [[ rbAhorro,olares.is!elected$ [[ rb3T!soles.is!elected$ [[
rb3T!dolares.is!elected$;
i4 \veri4ica$
{
*&ption+ane.show0essage,ialognull(-!elecciona un tipo de 3uenta-$;
return;
2
i4 txt!aldo%nicial.getText$.length$));$
{
*&ption+ane.show0essage,ialognull(-%ngresa un !aldo %nicial-$;
return;
2
datos";#)-<@??-1txt,oc.getText$;
datos"B#)txtApe.getText$;
datos"/#)txtGom.getText$;
datos":#)txt!aldo%nicial.getText$;
i4 rbAhorro!oles.is!elected$$
{
datos"H#)-Ahorro en !oles-;
2
i4 rbAhorro,olares.is!elected$$
{
datos"H#)-Ahorro en ,Klares-;
2
i4 rb3T!soles.is!elected$$
{
datos"H#)-3T! en !oles-;
2
i4 rb3T!dolares.is!elected$$
{
datos"H#)-3T! en ,Klares-;
Ing8 Mart9n Salcedo :#i;ones !
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
2
dtm.addOowdatos$;
4ilas)dtm.getOow3ount$;
4menu.set>alores4ilasCB(datos";#(datos"B#(datos"/#(datos"H#(datos":#$;
4menu.set8ilas4ilasCB$;
this.limpiar&bjetos$;
this.uso&bjetosTexto4alse$;
btnPrabar.set'nabled4alse$;
this.uso&bjetosOadio4alse$;
2
private void btn5uscarAction+er4ormedjava.awt.event.Action'vent evt$ {
!tring ape( nom( tipocuenta( nrotar;
ape)txtApe.getText$;
nom)txtGom.getText$;
this.uso&bjetosOadiotrue$;
int 4ilas( i;
boolean encuentra)4alse;
4ilas)Tabla3uentas.getOow3ount$;
i4 4ilasZ;$
{
4or i);;iV4ilas;i11$
{
i4 ape.e7uals%gnore3ase!tring$Tabla3uentas.get>alueAti(B$$ ]]
nom.e7uals%gnore3ase!tring$Tabla3uentas.get>alueAti(/$$$
{
encuentra)true;
txtGroTar.set'nabledtrue$;
nrotar)!tring$Tabla3uentas.get>alueAti(;$;
txtGroTar.setTextnrotar$;
txtGroTar.set'nabled4alse$;
txt,oc.set'nabledtrue$;
txt,oc.setTextnrotar.substring:$$;
txt,oc.set'nabled4alse$;
tipocuenta)!tring$Tabla3uentas.get>alueAti(H$;
i4 tipocuenta.e7uals-Ahorro en !oles-$$
rbAhorro!oles.set'nabled4alse$;
i4 tipocuenta.e7uals-Ahorro en ,Klares-$$
rbAhorro,olares.set'nabled4alse$;
i4 tipocuenta.e7uals-3T! en !oles-$$
rb3T!soles.set'nabled4alse$;
i4 tipocuenta.e7uals-3T! en ,Klares-$$
rb3T!dolares.set'nabled4alse$;
2

2

2
i4 \encuentra$
{
this.uso&bjetosTextotrue$;
txt,ir.setText--$;
txt,oc.setText--$;
txt,ir.re7uest8ocus$;
2
btnPrabar.set'nabledtrue$;
2
CODIGO DEL FORMULARIO frOpera#io!e$
package casoUbanco;
import javax.swing.*&ption+ane.*;
import javax.swing.*;
import javax.swing.table.*;
public class 4rm&peraciones extends javax.swing.*8rame {
,e4aultTable0odel dtm)new ,e4aultTable0odel$;
//instanciar fmenu a partir de la clase frmMenu
4rm0enu 4menu)new 4rm0enu$;
/** 3reates new 4orm 4rm&peraciones */
Ing8 Mart9n Salcedo :#i;ones 2""
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
//mtodo constructor
public 4rm&peraciones$ {
init3omponents$;
!tring titulos"#){-Tarjeta-(-Apellidos-(-Gombres-(-Tipo 3uenta-(-Tipo &peraciKn-(-0onto-2;
dtm.set3olumn%denti4ierstitulos$;
Tabla&peraciones.set0odeldtm$;
btn+rocesar.set'nabled4alse$;
this.llenarTabla$;
this.set6ocationB/;(B/;$;
2

//mtodo para llenar de filas a la TablaOperaciones
public void llenarTabla$
{
int 4( i;
4)4menu.getOegistros$;
!tring datos"#)new !tring"=#;
i4 4Z);$
{
4or i);;iV)4;i11$
{
datos";#)4menu.get0ovimientosi(;$;
datos"B#)4menu.get0ovimientosi(B$;
datos"/#)4menu.get0ovimientosi(/$;
datos"H#)4menu.get0ovimientosi(H$;
datos":#)4menu.get0ovimientosi(:$;
datos"<#)4menu.get0ovimientosi(<$;
dtm.addOowdatos$;
2

2
2

public void uso&bjetosOadioboolean accion$
{
rbAhorro!oles.set'nabledaccion$;
rbAhorro,olares.set'nabledaccion$;
rb3T!soles.set'nabledaccion$;
rb3T!dolares.set'nabledaccion$;
2

public void limpiar&bjetos$
{
txtGroTar.setText--$;
txtApe.setText--$;
txtGom.setText--$;
txt0onto.setText--$;
2
private void btn3ancelarAction+er4ormedjava.awt.event.Action'vent evt$ {
this.limpiar&bjetos$;
this.uso&bjetosOadiotrue$;
txtGroTar.re7uest8ocus$;
2
private void btn3errarAction+er4ormedjava.awt.event.Action'vent evt$ {
this.hide$;
2
private void btn+rocesarAction+er4ormedjava.awt.event.Action'vent evt$ {
!tring datos"#)new !tring"=#;
int reg( 4ilas( i( posicion);;
double saldo);.;;
boolean veri4ica;
veri4ica)rbAhorro!oles.is!elected$ [[ rbAhorro,olares.is!elected$ [[ rb3T!soles.is!elected$ [[
rb3T!dolares.is!elected$;
i4 \veri4ica$
{
*&ption+ane.show0essage,ialognull(-!elecciona un tipo de 3uenta-$;
return;
2
veri4ica)rbOetiro.is!elected$ [[ rb,eposito.is!elected$;
Ing8 Mart9n Salcedo :#i;ones 2"!
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
i4 \veri4ica$
{
*&ption+ane.show0essage,ialognull(-!elecciona un tipo de &peraciKn-$;
return;
2
i4 txt0onto.getText$.length$));$
{
*&ption+ane.show0essage,ialognull(-%ngresa el 0onto de la &peraciKn-$;
return;
2
datos";#)txtGroTar.getText$;
datos"B#)txtApe.getText$;
datos"/#)txtGom.getText$;
i4 rbAhorro!oles.is!elected$$
{
datos"H#)-Ahorro en !oles-;
2
i4 rbAhorro,olares.is!elected$$
{
datos"H#)-Ahorro en ,Klares-;
2
i4 rb3T!soles.is!elected$$
{
datos"H#)-3T! en !oles-;
2
i4 rb3T!dolares.is!elected$$
{
datos"H#)-3T! en ,Klares-;
2
i4 rbOetiro.is!elected$$
{
datos":#)-Oetiro-;
2
i4 rb,eposito.is!elected$$
{
datos":#)-,epKsito-;
2
datos"<#)txt0onto.getText$;
//!squeda del "aldo de la cuenta
4ilas)4menu.get8ilas$;
4or i);;iV)4ilas;i11$
{
i4 4menu.get>aloresi(;$.e7ualsdatos";#$ ]] 4menu.get>aloresi(H$.e7ualsdatos"H#$$
{
saldo),ouble.parse,ouble4menu.get>aloresi(:$$;
posicion)i;
2
2
//en caso de ser retiro verificar suficiente saldo de la cuenta
i4 rbOetiro.is!elected$$
{
i4 ,ouble.parse,oubledatos"<#$Zsaldo$
{
*&ption+ane.show0essage,ialognull(-'l 0onto de retiro supera al saldo Actual-$;
return;
2
saldo)saldoC,ouble.parse,oubledatos"<#$;
2
//en caso de ser deposito sumar en saldo
i4 rb,eposito.is!elected$$
{
saldo)saldo1,ouble.parse,oubledatos"<#$;
2
//actualizamos el saldo de la cuenta
4menu.setActuali9a!aldoposicion(!tring.value&4saldo$$;
//agregamos una fila en la Tabla que se encuentra en la segunda pesta#a
dtm.addOowdatos$;
//obtenemos el n!mero de filas encontradas en la Tabla y luego grabamos en el arreglo matriz
Movimientos
reg)dtm.getOow3ount$;
4menu.set0ovimientosregCB(datos";#(datos"B#(datos"/#(datos"H#(datos":#(datos"<#$;
//actualizamos el n!mero de registros
4menu.setOegistrosregCB$;
Ing8 Mart9n Salcedo :#i;ones 2"2
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
this.limpiar&bjetos$;
this.uso&bjetosOadiotrue$;
btn+rocesar.set'nabled4alse$;
txtGroTar.re7uest8ocus$;
2
private void btn5uscarAction+er4ormedjava.awt.event.Action'vent evt$ {
!tring nrotar;
nrotar)txtGroTar.getText$;
int 4( i;
4)4menu.get8ilas$;
boolean encuentra)4alse;
i4 4Z);$
{
this.uso&bjetosOadio4alse$;
4or i);;iV)4;i11$
{
i4 4menu.get>aloresi(;$.e7ualsnrotar$$
{
i4 4menu.get>aloresi(H$.e7uals-Ahorro en !oles-$$
rbAhorro!oles.set'nabledtrue$;
i4 4menu.get>aloresi(H$.e7uals-Ahorro en ,Klares-$$
rbAhorro,olares.set'nabledtrue$;
i4 4menu.get>aloresi(H$.e7uals-3T! en !oles-$$
rb3T!soles.set'nabledtrue$;
i4 4menu.get>aloresi(H$.e7uals-3T! en ,Klares-$$
rb3T!dolares.set'nabledtrue$;
txtApe.setText4menu.get>aloresi(B$$;
txtGom.setText4menu.get>aloresi(/$$;
encuentra)true;
btn+rocesar.set'nabledtrue$;
2

2
i4 \encuentra$
{
*&ption+ane.show0essage,ialognull(-'l nTmero de Tarjeta G& 'X%!T' \\\-$;
this.uso&bjetosOadiotrue$;
2
2
else
{
*&ption+ane.show0essage,ialognull(-Go existe Tarjeta alguna para reali9ar una &peraciKn-$;
2
2
.58 Una ve= $rogramado( $rocedemos a e&ec#tar la a$licacin8 ?&ec#tamos el
<orm#lario <rmMen#8
Ing8 Mart9n Salcedo :#i;ones 2"3
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Al dar clic en la o$cin A$ert#ra de C#entas( ingresamos los a$ellidos , nombres
de #n cliente8
L#ego damos clic en el botn de comando -#scar , como es #n n#evo cliente
$rocedemos a ingresar la direccin , el doc#mento de identidad8 Seleccionamos el
Ing8 Mart9n Salcedo :#i;ones 2"4
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
ti$o de c#enta Ahorro en Soles8 Por e&em$lo si no ingresamos el saldo inicial ,
damos clic en el botn de comando Grabar mostrar #n mensa&e de error8
Una ve= ingresado el saldo inicial , al dar clic en el botn de comando Grabar se
graba en el ob&eto ')able denominado )ablaC#entas8 Se lim$ia los ob&etos de
control , se inhabilita el botn de comando Grabar8
Se mostrar en la seg#nda $esta;a la c#enta a$ert#rada8
Ing8 Mart9n Salcedo :#i;ones 2"5
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
6amos clic en el botn de comando Cerrar8 Seleccionamos del menG la o$cin
O$eraciones -ancarias8 Ingresamos el nGmero de tar&eta , al dar clic se vis#ali=a
los datos del cliente , se habilitan las c#entas a$ert#radas8
Ing8 Mart9n Salcedo :#i;ones 2"6
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Una ve= seleccionado la c#enta de Ahorros en soles( elegimos el ti$o de o$eracin
de 6e$sito8 Ingresamos el monto de la o$eracin8
6amos clic en el botn de comando Procesar se $rocede a grabar los datos
generando #na n#eva <ila en el ob&eto ')able denominado )ablaO$eraciones8
Si cerramos la ventana de O$eraciones -ancarias , seleccionamos la o$cin de
Ing8 Mart9n Salcedo :#i;ones 2"7
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
A$ert#ra de C#entas , nos dirigimos a la seg#nda $esta;a , observamos >#e el
saldo act#al ha a#mentando en "!! soles >#edando en 3!! soles8

Ing8 Mart9n Salcedo :#i;ones 2"8
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
,A'73O )7 LO$ $KI'+ KI')OK$

Objeto 3)ialo0 y 39rame
'6ialog es #n com$onente >#e sirve $ara $resentar dilogos >#e son ventanas a#*iliares
>#e se $resentan c#ando se registra #n evento dentro de #n $rograma( sirven $ara
$revencin o en s# de<ecto se $#ede #tili=ar $ara dar in<ormacin sobre algo( los dilogos
>#e '6ialog m#estra $#eden ser modales o no modales( esto >#iere decir >#e si son
modales la ventana del dilogo blo>#ea las entradas a otras ventanas( este ti$o de
dilogos se $#eden hacer tambiBn con 'O$tionPane8
)odos los dilogos de$enden de #n <rame( las modi<icaciones >#e se le hagan al <rame
a<ectaran a el dilogo( en caso de >#e el <rame sea cerrado( minimi=ado o ma*imi=ado(
s#s dilogos tendrn el mismo com$ortamiento8
Un ob&eto '+rame es #na ventana ms #tili=ado $ara dise;ar <orm#larios8 Vamos a
$roceder hacer com$araciones con el ob&eto '6ialogE
Si instanciamos #n '+rame en la barra de aba&o de 7indo7s @creo >#e se llama
Zbarra de herramientasZA nos a$arece #n n#evo ZbotoncitoZ corres$ondiente a
Ing8 Mart9n Salcedo :#i;ones 2"
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
n#estra a$licacin8 Si instanciamos #n 3)ialo0( no a$arece nada8
Un 39rame tiene #n mBtodo setIconIma0eDC $ara cambiar el icono $or de<ecto de
la ta=a de ca<B8 3)ialo0 no tiene este mBtodo8
Un 3)ialo0 admite otra ventana @39rame o 3)ialo0A como $adre en el constr#ctor8
39rame no admite $adres8
Un 3)ialo0 $#ede ser modal( #n 39rame no8
)odo esto nos indica lo sig#ienteE
Un 39rame debe ser la ventana $rinci$al de n#estra a$licacin , slo debe haber
#na8
Las ventanas sec#ndarias de n#estra a$licacin deben ser 3)ialo08
Los motivos de esto son los sig#ientesE
Al mostrar el 39rame #n botn en la barra de herramientas de 7indo7s , tener mBtodo
$ara cambiar el icono( es la ventana ideal como ventana $rinci$al de n#estra a$licacin ,
slo debe haber #na8 Nos $ermite cambiar el icono , slo debe haber #n botn en la barra
de herramientas de 7indo7s $ara n#estra a$licacin8
Si #samos #n 3)ialo0 como ventana $rinci$al( no tenemos botn en la barra de
herramientas , no ha, <orma <cil de cambiarle el icono8
Los 3)ialo0 son ideales $ara ventanas sec#ndarias $or>#e admiten #na ventana $adre8
Si la VentanaA es $adre del '6ialog-( entonces el '6ialog- siem$re estar $or delante de
VentanaA( n#nca >#edar $or detrs8 Lo ideal es >#e hagamos n#estras ventanas
sec#ndarias como 3)ialo0 c#,o $adre sea el 39rame $rinci$al8 6e esta <orma los
3)ialo0 siem$re sern visibles $or encima del 39rame , no se irn detrs ni >#edarn
oc#ltos $or el 39rame8
Otra venta&a de admitir #n $adre es >#e heredan el icono de Bl8 Si hemos cambiado el
icono del 39rame con el mBtodo setIconIma0eDC( entonces todos los 3)ialo0 >#e
hagamos como hi&os de este 39rame heredarn el icono8 )odas las ventanas de n#estra
a$licacin tendrn el mismo icono en l#gar de la ta=a de ca<B $or de<ecto8
Un 3)ialo0 $#ede ser modal( $asndole #n true en el constr#ctor en el sitio adec#ado o
haciBndolo modal con el mBtodo set,odalDC8 Si hacemos #n 3)ialo0 modal( todas las
dems ventanas se deshabilitarn hasta >#e el #s#ario de n#estro $rograma cierre el
3)ialo08 ?sto est est#$endo $ara $edir #n dato al #s#ario , evitar >#e to>#e otras cosas
Ing8 Mart9n Salcedo :#i;ones 2!"
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
hasta >#e ha,a introd#cido el dato8 Sin embargo( tiene #n $eligro8
S#$ongamos #n 3)ialo0 >#e lo hacemos modal $ara $edir #nos datos al #s#ario8 ?ste
3)ialo0 tiene #n botn de ZAce$tarZ $ara >#e el #s#ario lo $#lse c#ando ha,a terminado
de introd#cir los datos8 S#$ongamos >#e en el cdigo de ese botn ZAce$tarZ
com$robamos los datos >#e ha metido el #s#ario , vemos >#e son incorrectos8 Le
sacamos #n seg#ndo 3)ialo0 modal $ara indicarle el error , no cerramos el $rimero8
[:#iBn debe ser el $adre de ese seg#ndo 3)ialo0 modal\8 Si hacemos >#e el $adre sea
el 39rame tendremos dos 3)ialo0 modales hi&os del 39rame( es decir( dos 3)ialo0
modales hermanos8 ?sto nos dar $roblemas( como >#e ambas ventanas >#eden
deshabilitadas( >#e al cerrar #na de ellas se nos oc#lten todas( >#e $arte de la ventana
>#ede deshabilitada mientras >#e otra $arte no( etc8
?ntonces( [cmo hacemos\8 Para >#e &ava no haga cosas raras( el $adre del seg#ndo
3)ialo0 modal debe ser el $rimer 3)ialo0 modal8 6e esta <orma( el seg#ndo tiene
Z$rioridadZ sobre el $rimero8 )odo >#eda deshabilitado e*ce$to este seg#ndo 3)ialo08
C#ando lo cerremos( ser el $rimero el >#e mande8 Si >#eremos varias ventanas modales
sim#ltneamente en $antalla( cada ventana >#e se m#estre debe ser $adre de la
sig#iente( de <orma >#e la cadena de ventanas modales sean $adre( hi&o( nieto( etc8 )ener
dos ventanas modales sim#ltneas >#e sean hermanas o $rimas o c#al>#ier otra relacin
>#e no sea directa( nos dar $roblemas
Aplicaci%n "
Vamos a $roceder a crear #n <orm#lario donde se har #so del ob&eto '6ialog $ara
mostrar #n mensa&e dentro de #n ob&eto de control 'te*tArea8
Sol#cinE
!# Procedemos a crear #n $ro,ecto denominado S7ingRindo7s8
Ing8 Mart9n Salcedo :#i;ones 2!!
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
L#ego dar clic en el botn de comando Finish @en caso de >#e la versin de
Net-eans es en castellano entonces dar clic en el botn de comando 'erminarA
2# ?stando en el entorno de Net-eans( seleccionamos el $a>#ete s6in06indo6s ,
dando clic botn derecho del mo#se( se m#estra #n menG <lotante( donde
seleccionamos +orm#lario '+rame8
3# A contin#acin( colocaremos como nombre de <orm#lario frm9soJ0ialo"8
Ing8 Mart9n Salcedo :#i;ones 2!2
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
%8 Procedemos a $rogramar
package swingwindows;
import javax.swing.*;
import java.awt.*;
public class 4rmFso*,ialog extends javax.swing.*8rame {

/** 3reates new 4orm 4rmFso*,ialog */
public 4rmFso*,ialog$ {
init3omponents$;
// creamos una variable del tipo $%ialog
*,ialog dialog;
// creamos una variable de tipo $&rame
*8rame credi;
credi)new *8rame$;
dialog ) new *,ialogcredi( --( true$;
dialog.setTitle-3reditos-$;
*TextArea texto ) new *TextArea-'ste +rograma 4ue ,iseLado por .Sn- 1 -0artMn !alcedo ^uiLonesSn-
1 -3omo Trabajo del curso de +rogramaciKn >isualSn- 1-3ontiene j8rame J *,ialogSn-$;
3ontainer content+ane ) dialog.get3ontent+ane$;
content+ane.addtexto( 5order6aJout.3'GT'O$;
dialog.set!i9enew ,imensionH;;( B<;$$;
dialog.show$;
2
?n la l9nea de $rogramacin sig#ienteE
dialog ) new *,ialogcredi( --( true$;
Podemos notar la $arte del String est vac9a( esto se debe a >#e en el $rograma
vamos a cambiarle el t9t#lo al '6ialog( a medida >#e necesitemos $resentar #no
n#evo( esto con el <in de crear #n solo '6ialog $ara las di<erentes ventanas8
Ing8 Mart9n Salcedo :#i;ones 2!3
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
)ambiBn vemos >#e en boolean esta tr#e esto es $ara es$eci<icar >#e es #n
dilogo modal en caso >#e no lo $ondr9amos <alse8
?n la l9nea de $rogramacin sig#ienteE
dialog.setTitle-3reditos-$;
?l mBtodo set)itle es #tili=ada $ara cambiarle el t9t#lo a dialog8
?n las l9neas de $rogramacin sig#ienteE
*TextArea texto ) new *TextArea-'ste +rograma 4ue ,iseLado por .Sn- 1 -0artMn !alcedo ^uiLonesSn- 1
-3omo Trabajo del curso de +rogramaciKn >isualSn- 1-3ontiene j8rame J *,ialogSn-$;
3ontainer content+ane ) dialog.get3ontent+ane$;
Creamos el com$onente >#e va dentro( , a contin#acin se $one el dialog dentro
del contentPane &#nto con el com$onente8
?n las l9neas de $rogramacin sig#ienteE
dialog.set!i9enew ,imensionH;;( B<;$$;
dialog8sho7@AJ
Por Gltimo se dice el tama;o del *,ialog , la Gltima l9nea es $ara >#e sea
mostrado8
28 Procedemos a com$ilar el <orm#lario <rmUso6ialog , l#ego e&ec#tarlo8
18 Una ve= e&ec#tado se m#estra la sig#iente ventanaE
Ing8 Mart9n Salcedo :#i;ones 2!4
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Objeto 39ileCAooser
?n 'ava tenemos varias <ormas $ara leer , escribir <icheros de te*tos( binarios( de <ormato
*ml( etc8 La clase '+ileChooser $ermite mostrar #na ventana $ara >#e el #s#ario naveg#e
$or los directorios , eli&a #n archivo8
Para $edir #n archivo $ara abrirlo , leerlo basta hacer dos l9neas de $rogramacinE
*8ile3hooser 4ile3hooser ) new *4ile3hooser$;
int seleccion ) 4ile3hooser.show&pen,ialogareatexto$;
?ste cdigo abre #na ventana $ara navegar en directorios , elegir #n <ichero8
Podremos seleccionar el botn de comando Abrir o el botn de comando Cancelar8 ?n la
variable de memoria seleccion se almacenar el valor del botn de comando
seleccionado8 Slo debemos com$robar si es el botn de comando Abrir $ara $edirle a
'+ileChooser >#B archivo ha elegido el #s#ario , em$e=ar a traba&ar con Bl8
%4 selecciKn ))*4ile3hooser.A++O&>'U&+T%&G$
{
8ile 4ichero ) 4ile3hooser.get!elected8ile$;
2
Ing8 Mart9n Salcedo :#i;ones 2!5
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Si seleccin vale JFile!hooser.APP%1*E81P'-1N es >#e el #s#ario ha $#lsado CAbrirD(
as9 >#e $edimos el <ichero seleccionado con 0et$elected9ile@A8
'+ileChooser abre #na ventana >#e se mostrar &#nto a la ventana de n#estro editor8 Nos
g#star9a >#e esta ventana de seleccin de <ichero no se va,a detrs , >#ede oc#lta $or la
ventana del editor8 La ventana de elegir <ichero deber9a estar siem$re delante , visible
sobre el editor8 La <orma de conseg#ir esto es >#e 39ileCAooser se$a c#al es esta
ventana delante de la c#al debe estar siem$re8 Para saber c#l es esa ventana( basta con
$asarle en el $armetro c#al>#ier com$onente de dicha ventana8 ?n n#estro e&em$lo
hemos decidido $asarle el 3Te=tArea de n#estro editor( $ero $od9amos $asarle
$er<ectamente el 3,enu2ar o el 39rame $rinci$al8
Para elegir #n <ichero $ara salvar( el cdigo es e*actamente ig#al( $ero cambia el mBtodo
$ara vis#ali=ar el dilogo8
*8ile3hooser 4ile3hooser ) new *8ile3hooser$;
int seleccion ) 4ile3hooser.show!ave,ialogareatexto$;
Aplicaci%n B
Vamos a $roceder a crear #na a$licacin donde #saremos el '+rame('6ialog( ')e*tArea(
, '+ileChooser $ara hacer lect#ra de #n archivo te*to seleccionado , abierto desde #n
'+ileChooser8
Sol#cinE
!# Procedemos a crear #n $ro,ecto denominado Pr#eba'+ileChooser8
L#ego dar clic en el botn de comando Finish @en caso de >#e la versin de
Net-eans es en castellano entonces dar clic en el botn de comando 'erminarA
2# )odo $ro,ecto creado crea $or de<ecto #n archivo main de e*tensin &ava8 Maremos
#so de este archivo $ara lo c#al colocaremos el sig#iente cdigo8
package pruebaj4ilechooser;
import javax.swing.*;
import java.io.*;
import java.awt.*;
Ing8 Mart9n Salcedo :#i;ones 2!6
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
/**
*
* @author Fsuario
*/
public class 0ain {

/** 3reates a new instance o4 0ain */
public 0ain$ {

2

/**
* @param args the command line arguments
*/
public static void main!tring"# args$throws %&'xception {
*TextArea area) new *TextArea$;
*,ialog dialog;
*8rame 4ormulario ) new *8rame$;
dialog ) new *,ialog4ormulario( --( true$;
dialog.setTitle-0ostrar Archivo-$;
//se instancia la variable fileC'ooser del tipo $&ileC'ooser
*8ile3hooser 4ile3hooser ) new *8ile3hooser$;
//con el mtodo s'o(Open%ialog)* se muestra la ventana para seleccionar el arc'ivo
int seleccion ) 4ile3hooser.show&pen,ialogarea$;
//si el usuario selecciona el botn de comando +brir, el if se 'ace verdadero
i4 seleccion))*8ile3hooser.A++O&>'U&+T%&G$
{
//la variable fic'ero contiene el arc'ivo te-to seleccionado con el mtodo get"elected&ile)*
8ile 4ichero ) 4ile3hooser.get!elected8ile$;
//la variable reader permite leer linea por linea el arc'ivo a travs del mtodo read.ine)*
5u44eredOeader reader ) new 5u44eredOeadernew 8ileOeader4ichero$$;
!tring linea ) reader.read6ine$;
//con ('ile se lee lnea por lnea y se pasa a la variable area que es un $Te-t+rea
while linea \) null$
{
area.appendlinea$;
area.append!Jstem.get+ropertJ-line.separator-$$;
linea ) reader.read6ine$;
2
//se cierra el fic'ero
reader.close$;
//se muestra visualmente el contenido de la variable area dentro de un $%ialog
3ontainer content+ane ) dialog.get3ontent+ane$;
content+ane.addarea( 5order6aJout.3'GT'O$;
dialog.set!i9enew ,imension<;;( =;;$$;
dialog.show$;
2

2

2
3# Una ve= com$ilado( $rocedemos a e&ec#tarlo8
Ing8 Mart9n Salcedo :#i;ones 2!7
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
4# Observamos la ventana generada $or el ob&eto '+ileChooser8
Seleccionamos el archivo te*to Gr#$os $ara Procedimientos Almacenados 888(
l#ego damos clic en el botn de comando Abrir8 A contin#acin( vis#ali=amos la
sig#iente inter<aceE
Ing8 Mart9n Salcedo :#i;ones 2!8
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
P(7$7'TACIO' )7 U' $I$T7,A )7 APLICACIO'
Continuaci%n del CA$O: 2anco J Cuentas
Contin#ando con la constr#ccin del caso de -ancos( vamos a agregar dos <orm#larios
>#e mane&ar cada #no de ellos #na cons#lta8 Observemos el sig#iente dise;oE
Ing8 Mart9n Salcedo :#i;ones 2!
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
?n Bste <orm#lario vamos a cons#ltar $or a$ellidos( >#e #na ve= ingresado los a$ellidos
del cliente , al dar clic en el botn de comando -#scar se mostrar los nombres del
cliente( el nGmero de doc#mento de doc#mento de identidad( el nGmero de tar&eta , se
habilitar los ob&etos 'Radio-#tton de a>#ellas c#entas >#e el cliente $osee8 ?n caso no
e*istiera los a$ellidos del cliente se mostrar #n mensa&e de >#e el cliente no e*iste8
Podremos seleccionar #na de las c#entas >#e tiene el cliente , al dar clic en el botn de
comando Saldo Act#al se mostrar en el c#adro de te*to el monto act#al de la c#enta8
Crearemos #na seg#nda $esta;a $ara hacer lo mismo $ero la bGs>#eda ser $or el
nGmero de tar&eta( siendo el dise;o el sig#ienteE
Ing8 Mart9n Salcedo :#i;ones 22"
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Para el seg#ndo <orm#lario se har la cons#lta de los movimientos de #na c#enta( $ara lo
c#al se #sar el sig#iente dise;oE
Ingresaremos el nGmero de tar&eta , al dar clic en el botn de comando -#scar se
mostrar los a$ellidos , nombres en #n c#adro de te*to , se habilitarn los ob&etos
'Radio-#tton de las c#entas >#e tiene el cliente8 ?n caso no e*istiera el nGmero de tar&eta
se mostrar #n mensa&e de >#e la tar&eta no e*iste8 ?n el momento >#e seleccionemos
#na c#enta se vis#ali=arn las o$eraciones de la c#enta seleccionada en #n ob&eto ')able
como tambiBn el total de de$sitos( el total de retiros , el saldo act#al en ob&eto
')e*t+ield8
?n el menG crearemos #na o$cin en la barra de menG >#e e*$rese Cons#ltas con dos
o$ciones @'Men#ItemA >#e e*$resen CC#entas del ClienteD , CO$eraciones de la C#entaD8
Ing8 Mart9n Salcedo :#i;ones 22!
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
$oluci%n:
!# Seleccionamos el $a>#ete caso8banco del $ro,ecto CasoL2anco , dando clic
botn derecho del mo#se( se m#estra #n menG <lotante( donde seleccionamos
+orm#lario '+rame8
2# A contin#acin( colocaremos como nombre de <orm#lario frm!ons&lta!lientes8
L#ego dar clic en el botn de comando Finish @en caso de >#e la versin de
Net-eans es en castellano entonces dar clic en el botn de comando 'erminarA
Ing8 Mart9n Salcedo :#i;ones 222
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
3# Se m#estra el entorno de desarrollo de Net-eans , no olvidemos de dar clic en el
botn derecho del mo#se sobre el <orm#lario , establecemos Absol&te )ayo&t en
(et)ayo&t8
%8 Iniciamos el dise;o del <orm#lario colocando #n ob&eto 'Label , ')abbedPanel8
28 Agregamos #n ob&eto 'Panel $ara crear el $rimer )ab8
Ing8 Mart9n Salcedo :#i;ones 223
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
6# Colocamos como e*$resin en la $esta;a CCons#lta de A$ellidosD , $rocedemos a
colocar Absol&te )ayo&t en la o$cin (et )ayo&t c#ando #semos el botn
derecho del mo#se sobre el 'ab/
7# Colocamos #n ob&eto '6es/to$Panel( cambiamos el color a #n anaran&ado claro ,
l#ego colocamos los ob&etos de control8 )endremos >#e colocar #n ob&eto 'Panel
$ara dise;ar los ob&etos 'Radio-#tton $ara las c#entas del cliente8 Al ob&eto 'Panel
debemos establecer Absol&te )ayo&t en (et)ayo&t.
Ing8 Mart9n Salcedo :#i;ones 224
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
Colocamos los dems ob&etos de control segGn el dise;o indicado en el en#nciado
del caso8
38 Procedamos a colocar nombres a los ob&etos de control de la $rimera $esta;a8
Ing8 Mart9n Salcedo :#i;ones 225
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
# Vamos a dise;ar la seg#nda $esta;a8 Procedemos a colocar Absol&te )ayo&t en
la o$cin (et )ayo&t c#ando #semos el botn derecho del mo#se sobre el 'ab2.
La e*$resin de la seg#nda $esta;a es CCons#lta $or )ar&etaD8
!"# Colocamos #n ob&eto '6es/to$Panel( cambiamos el color a #n celeste claro @color
ag#aA , l#ego colocamos los ob&etos de control8 )endremos >#e colocar #n ob&eto
'Panel $ara dise;ar los ob&etos 'Radio-#tton $ara las c#entas del cliente8 Al ob&eto
'Panel debemos establecer Absol&te )ayo&t en (et)ayo&t.
Ing8 Mart9n Salcedo :#i;ones 226
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
448 Procedamos a colocar nombres a los ob&etos de control de la seg#nda $esta;a8
4.8 Pasemos a dise;ar el <orm#lario $ara las cons#ltas de o$eraciones bancarias8
Creamos #n ob&eto '+rame8
!3# Le damos como nombre al <orm#lario frm!ons&lta1#eraciones8
Ing8 Mart9n Salcedo :#i;ones 227
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
L#ego dar clic en el botn de comando Finish @en caso de >#e la versin de
Net-eans es en castellano entonces dar clic en el botn de comando 'erminarA
!4# Se m#estra el entorno de desarrollo de Net-eans , no olvidemos de dar clic en el
botn derecho del mo#se sobre el <orm#lario , establece Absol&te )ayo&t en
(et)ayo&t.
!5# Iniciamos el dise;o del <orm#lario colocando los ob&etos de control , #saremos #n
ob&eto 'Panel donde se colocarn los ob&etos 'Radio-#tton $ara las c#entas del
Ing8 Mart9n Salcedo :#i;ones 228
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
cliente8 Al ob&eto 'Panel debemos establecer Absol&te )ayo&t en (et)ayo&t.
418 Contin#amos el dise;o del <orm#lario agregando #n ob&eto ')able $ara vis#ali=ar
en tiem$o de e&ec#cin las o$eraciones bancarias8 Agregamos tres ob&etos
')e*t+ield $ara mostrar el total de de$sitos( el total de retiros , el saldo act#al de
la c#enta seleccionada dentro del ob&eto 'Panel8 Procedamos a colocar nombres a
los ob&etos de control8
Ing8 Mart9n Salcedo :#i;ones 22
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
458 Procedemos a $rogramar en cada #no de los <orm#larios8
CODIGO DEL FORMULARIO frCo!$"%taC%ie!te$
public class 4rm3onsulta3lientes extends javax.swing.*8rame {
4rm0enu 4menu)new 4rm0enu$;
/** 3reates new 4orm 4rm3onsulta3lientes */
public 4rm3onsulta3lientes$ {
init3omponents$;
this.set6ocationB/;(B/;$;
2

public void uso&bjetosOadioboolean accion$
{
rbAhorro!oles.set'nabledaccion$;
rbAhorro,olares.set'nabledaccion$;
rb3T!soles.set'nabledaccion$;
rb3T!dolares.set'nabledaccion$;
2
public void uso&bjOadioboolean accion$
{
rbA!oles.set'nabledaccion$;
rbA,olares.set'nabledaccion$;
rb3T!s.set'nabledaccion$;
rb3T!d.set'nabledaccion$;
2
private void btn!aldoActualAction+er4ormedjava.awt.event.Action'vent evt$ {
!tring saldo)--( cuenta)--;
int 4ila(i;
4ila)4menu.get8ilas$;
//en la variable cuenta asignamos el tipo de cuenta seleccionada
i4 rbA!oles.is!elected$$
{
cuenta)-Ahorro en !oles-;
2
i4 rbA,olares.is!elected$$
{
cuenta)-Ahorro en ,Klares-;
2
i4 rb3T!s.is!elected$$
{
cuenta)-3T! en !oles-;
2
i4 rb3T!d.is!elected$$
{
cuenta)-3T! en ,Klares-;
2
//buscamos el saldo actual a travs del n!mero de tar/eta y el tipo de cuenta
4or i);;iV)4ila;i11$
{
i4txtTar.getText$.e7uals4menu.get>aloresi(;$$ ]]
cuenta.e7uals%gnore3ase4menu.get>aloresi(H$$$
{
saldo)4menu.get>aloresi(:$;
2
2
txt!aldoActual.setTextsaldo$;
2
private void btn'ncontrarAction+er4ormedjava.awt.event.Action'vent evt$ {
!tring cuenta( tar;
int 4ila( i;
tar)txtTar.getText$;
4ila)4menu.get8ilas$;
this.uso&bjOadio4alse$;
//buscamos los datos del cliente a travs del n!mero de tar/eta
4or i);;iV)4ila;i11$
{
i4 4menu.get>aloresi(;$.e7ualstar$$
{
txtAp.setText4menu.get>aloresi(B$$;
Ing8 Mart9n Salcedo :#i;ones 23"
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
txtGo.setText4menu.get>aloresi(/$$;
txtGro,oc.setText4menu.get>aloresi(;$.substring:$$;
//'abilitamos las cuentas que tiene el cliente
cuenta)4menu.get>aloresi(H$;
i4 cuenta.e7uals%gnore3ase-Ahorro en !oles-$$
rbA!oles.set'nabledtrue$;
i4 cuenta.e7uals%gnore3ase-Ahorro en ,Klares-$$
rbA,olares.set'nabledtrue$;
i4 cuenta.e7uals%gnore3ase-3T! en !oles-$$
rb3T!s.set'nabledtrue$;
i4 cuenta.e7uals%gnore3ase-3T! en ,Klares-$$
rb3T!d.set'nabledtrue$;
2
2
2
private void btn3errarAction+er4ormedjava.awt.event.Action'vent evt$ {
this.hide$;
2
private void btn!aldoAction+er4ormedjava.awt.event.Action'vent evt$ {
!tring saldo)--( cuenta)--;
int 4ila(i;
4ila)4menu.get8ilas$;
i4 rbAhorro!oles.is!elected$$
{
cuenta)-Ahorro en !oles-;
2
i4 rbAhorro,olares.is!elected$$
{
cuenta)-Ahorro en ,Klares-;
2
i4 rb3T!soles.is!elected$$
{
cuenta)-3T! en !oles-;
2
i4 rb3T!dolares.is!elected$$
{
cuenta)-3T! en ,Klares-;
2
4or i);;iV)4ila;i11$
{
i4txtGroTar.getText$.e7uals4menu.get>aloresi(;$$ ]]
cuenta.e7uals%gnore3ase4menu.get>aloresi(H$$$
{
saldo)4menu.get>aloresi(:$;
2
2
txt!aldo.setTextsaldo$;
2
private void btn5uscarAction+er4ormedjava.awt.event.Action'vent evt$ {
!tring ape( cuenta;
int 4ila( i;
ape)txtApe.getText$;
4ila)4menu.get8ilas$;
this.uso&bjetosOadio4alse$;
4or i);;iV)4ila;i11$
{
i4 4menu.get>aloresi(B$.e7uals%gnore3aseape$$
{
txtGom.setText4menu.get>aloresi(/$$;
txt,oc.setText4menu.get>aloresi(;$.substring:$$;
txtGroTar.setText4menu.get>aloresi(;$$;
cuenta)4menu.get>aloresi(H$;
i4 cuenta.e7uals%gnore3ase-Ahorro en !oles-$$
rbAhorro!oles.set'nabledtrue$;
i4 cuenta.e7uals%gnore3ase-Ahorro en ,Klares-$$
rbAhorro,olares.set'nabledtrue$;
i4 cuenta.e7uals%gnore3ase-3T! en !oles-$$
rb3T!soles.set'nabledtrue$;
i4 cuenta.e7uals%gnore3ase-3T! en ,Klares-$$
rb3T!dolares.set'nabledtrue$;
Ing8 Mart9n Salcedo :#i;ones 23!
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
2
2


2
CODIGO DEL FORMULARIO frCo!$"%taOpera#io!e$
package casoUbanco;
import javax.swing.*&ption+ane;
import javax.swing.table.*;
public class 4rm3onsulta&peraciones extends javax.swing.*8rame {
4rm0enu 4menu)new 4rm0enu$;
,e4aultTable0odel dtm ) new ,e4aultTable0odel$;

/** 3reates new 4orm 4rm3onsulta&peraciones */

public 4rm3onsulta&peraciones$ {
init3omponents$;
!tring titulos"#){-Tipo de &peraciKn-(-0onto-2;
dtm.set3olumn%denti4ierstitulos$;
tabla&peraciones.set0odeldtm$;
this.set6ocationB/;(B/;$;
2

public void uso&bjetosOadioboolean accion$
{
rbAhorro!oles.set'nabledaccion$;
rbAhorro,olares.set'nabledaccion$;
rb3T!soles.set'nabledaccion$;
rb3T!dolares.set'nabledaccion$;
2

public void llenaTabla!tring nrotar( !tring cuenta$
{
!tring datos"#)new !tring"/#;
int reg( i( 4( 4ila;
double suma,ep);.;( sumaOet);.;( monApe);.;;
reg)4menu.getOegistros$;
4)tabla&peraciones.getOow3ount$;
//limpiamos el ob/eto Table luego llenar con los movimientos de la cuenta
i4 4Z;$
4or i);;iV4;i11$
dtm.removeOow;$;
// luego llenamos al ob/eto Table con los movimientos de la cuenta
4or i);;iV)reg;i11$
{
i44menu.get0ovimientosi(;$.e7ualsnrotar$ ]] 4menu.get0ovimientosi(H$.e7ualscuenta$$
{
datos";#)4menu.get0ovimientosi(:$;
datos"B#)4menu.get0ovimientosi(<$;
dtm.addOowdatos$;
2
2
//sumamos los depsitos y los retiros en las variables suma%ep y suma0et
4)tabla&peraciones.getOow3ount$;
i4 4Z;$
4or i);;iV4;i11$
{
i4 tabla&peraciones.get>alueAti(;$.e7uals-,epKsito-$$
suma,ep)suma,ep1,ouble.parse,ouble!tring$tabla&peraciones.get>alueAti(B$$;
else
sumaOet)sumaOet1,ouble.parse,ouble!tring$tabla&peraciones.get>alueAti(B$$;
2
txtTotal,ep.setText!tring.value&4suma,ep$$;
txtTotalOet.setText!tring.value&4sumaOet$$;
4ila)4menu.get8ilas$;
//obtenemos el saldo actual de la cuenta
Ing8 Mart9n Salcedo :#i;ones 232
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
4or i);; iV)4ila; i11$
i4 4menu.get>aloresi(;$.e7ualsnrotar$ ]] 4menu.get>aloresi(H$.e7ualscuenta$$
txt!aldoActual.setText4menu.get>aloresi(:$$;
monApe),ouble.parse,oubletxt!aldoActual.getText$$ C suma,ep C sumaOet$;
txt0onApe.setText!tring.value&4monApe$$;
2

private void rb3T!dolaresAction+er4ormedjava.awt.event.Action'vent evt$ {
this.llenaTablatxtTar.getText$(-3T! en ,Klares-$;
2
private void rb3T!solesAction+er4ormedjava.awt.event.Action'vent evt$ {
this.llenaTablatxtTar.getText$(-3T! en !oles-$;
2
private void rbAhorro,olaresAction+er4ormedjava.awt.event.Action'vent evt$ {
this.llenaTablatxtTar.getText$(-Ahorro en ,Klares-$;
2
private void btn3errarAction+er4ormedjava.awt.event.Action'vent evt$ {
this.hide$;
2
private void rbAhorro!olesAction+er4ormedjava.awt.event.Action'vent evt$ {
this.llenaTablatxtTar.getText$(-Ahorro en !oles-$;
2
private void btn5uscarAction+er4ormedjava.awt.event.Action'vent evt$ {
!tring cuenta( tar;
int 4ila( i;
tar)txtTar.getText$;
4ila)4menu.get8ilas$;
this.uso&bjetosOadio4alse$;
4or i);;iV)4ila;i11$
{
i4 4menu.get>aloresi(;$.e7ualstar$$
{
txtApeGom.setText4menu.get>aloresi(B$1- -14menu.get>aloresi(/$$;
cuenta)4menu.get>aloresi(H$;
i4 cuenta.e7uals%gnore3ase-Ahorro en !oles-$$
rbAhorro!oles.set'nabledtrue$;
i4 cuenta.e7uals%gnore3ase-Ahorro en ,Klares-$$
rbAhorro,olares.set'nabledtrue$;
i4 cuenta.e7uals%gnore3ase-3T! en !oles-$$
rb3T!soles.set'nabledtrue$;
i4 cuenta.e7uals%gnore3ase-3T! en ,Klares-$$
rb3T!dolares.set'nabledtrue$;
2
2
2
438 Una ve= $rogramado( $rocedemos a e&ec#tar la a$licacin8 ?&ec#tamos el
<orm#lario <rmMen# e ingresamos los datos >#e se indicaron en la sesin o tema
4.8 L#ego( $rocedemos a seleccionar la o$cin de Cons#ltas , $osteriormente
C#entas del Cliente8
Ing8 Mart9n Salcedo :#i;ones 233
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
!# Ingresamos los a$ellidos , nombres , damos clic en el botn de comando 2uscar
, mostrar el nGmero de doc#mento de identidad( el nGmero de tar&eta , se
habilitarn las c#entas >#e tiene el cliente8 Seleccionamos #na c#enta( damos clic
en el botn de comando $aldo Actual , se vis#ali=ar el saldo de la c#enta
elegida8
Ing8 Mart9n Salcedo :#i;ones 234
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
2"# Lo mismo $odemos hacerlo en la otra $esta;a >#e se cons#lta $or el nGmero de
tar&eta8 Cerramos la ventana de la cons#lta dando clic en el botn de comando
Cerrar , $osteriormente seleccionamos la o$cin Operaciones de la Cuenta8
Ingresamos el nGmero de tar&eta , damos clic en el botn de comando 2uscar , se
mostrar los a$ellidos , nombres del cliente , se habilitarn las c#entas >#e tiene
el cliente8
.48 Procedemos a seleccionar la c#enta Ahorro en Soles , se vis#ali=ar las
o$eraciones reali=adas con la c#enta como tambiBn el monto de la a$ert#ra( el total
de de$sitos( el total de retiros , el saldo act#al8
Ing8 Mart9n Salcedo :#i;ones 235
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
AUTO7#ALUACIO'
aC (esponde a las si0uientes pre0untas:
48 ?l ob&eto contenedor >#e $#ede estar com$#esto $or varios $esta;as o $anales( se
denomina OOOOOOOOOOOOOOOOOOOO
.8 ?l mBtodo >#e $ermite oc#ltar #n <orm#lario es hide@A @verdadero o <alsoA
OOOOOOOOOOOOOOOO
"8 ?l mBtodo >#e a;ade #na n#eva <ila al modelo de #n ob&eto ')able se denomina
OOOOOOOOOOOOOOOO
%8 ?l o$erador ne7 $ermite instanciar #n ob&eto a $artir de s# clase , mBtodo constr#ctor
@verdadero o <alsoA OOOOOOOOOOOOOOOOOO
bC )esarrolla las si0uientes aplicaciones:
48 Al caso de -anco modi<ica la a$licacin >#e $ermita b#scar #n cliente $or s#
doc#mento de identidad , no $or s#s a$ellidos , nombres8
.8 Al caso de -anco en l#gar de seleccionar el ti$o de c#enta a travBs de ob&etos de
'radio-#tton se haga a travBs de #na lista des$legable8 Macer el cambio en el
<orm#lario de a$ert#ra de c#entas8
(797(7'CIA$ 2I2LIO+(A9ICA$
H Marve, M8 6eitel , Pa#l '86eitel Cmo $rogramar en 'ava8Pearson ?d#cacin( 2da
edicin( 4.13$( .!!%
$ %&gina o'icial de (etBeans# )tili*ando el entorno (etBeans
+ttp,--wi.i#netbeans#org-/panis+0ranslation0utoriales1%2%ersistencia3W%
$ /un 4icrosyste5s 6(etBeans 278 9a:a ;uic. /tart 0utorial<
+ttp,--www#netbeans#org-.b-docs-ja:a-quic.start#+t5l
$ (oelia 4=nde* >ern&nde* y 9os= ?arc@a 3aliente# %rogra5aciAn con /wing, 9unio 2""5
+ttp,--es#scribd#co5-doc-7222"6-9a:a$/wing
$ 9a:a /wing Containers +ttp,--www#cs#qub#ac#u.-B%#Canna-9a:a%rogra55ing-Decture6-9a:a $
Decture 6 $ Containers#pd'
(e8erencias biblio0r8icas Dbiblioteca 4irtual de la ULA)7C?C
!# %EF?E141C2F( 8( 91312#1utor, 9esus /anc+e* 1llende, ?abriel Cuecas >ernande*$
0oribio, %ilar 4oreno 7ia*#8ditorial, 4c?raw$Cill 8spaGa# %ublicacion, 2""5#0e5as,
9a:a2Hlenguaje de progra5acionI 9a:aHCo5puter progra5 languajeI#
Ing8 Mart9n Salcedo :#i;ones 236
PROGRAMACION VISUAL I
Universidad Catlica Los Angeles de Chimbote
2# 9a:a, soluciones de progra5aciAn# 1utor, Cerbert /c+ildt# 8ditorial, 4c?raw$Cill
%ro'essional %ublis+ing# >ec+a de publicaciAn original, !2-2"!"# 0e5as, Denguajes de
progra5aciAn# %rogra5aciAn de ordenadores# %rogra55ing languages H8lectronic
co5putersI Co5puter progra55ing# %rogra5acion#
3# Programacion orientada a objetos usando +ava $lores fernande, -ector
editorial 'coe 'diciones
htt#.//site.ebrary.com/lib/bibliocauladechs#/doc/etail.action0
doc1/2345675689#442java
Ing8 Mart9n Salcedo :#i;ones 237

You might also like