Вы находитесь на странице: 1из 38

Aplicaciones grficas en Java Librera Swing

Sumario:

Breve introduccin al paquete Swing Tipos de clases del paquete Definicin y manejo de contenedores, dilogos y layouts Diseo mediante D! "!clipse# y ej$mplos% &esumen y 'i'liografia

La librera Swing

(ertenece a las )*+ ")ava *oundation +lasses#% Bi'lioteca grfica de )ava desde la versin ,%-% +ontenido en el paquete .java/%swing0% +reada a partir de .java%awt0% (ermite una interfa1 adaptada a cada S2 sin cam'io de cdigo% *cil manejo%

Look & Feel

(ara una interfa1 adaptada a cada S%2 de'emos incluir el siguiente cdigo en el m$todo main:
try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()) ; } catch( !ce"t#on e) { e."r#ntStack$race(); }

Clases del paquete Swing ( !

Clases del paquete Swing (

Todos los componentes 3eredan de

javax.swing.JComponent

)*rame ser la 'ase para la aplicacin principal% )Dialog construir los dialgos "ventanas#% !l resto de clases sern componentes simples% 4sar en todas las clases import javax.swing.*; y import java.awt.*; Todas las componentes permiten fijar un mnemot$cnico: componente.setMnemonic(KeyEvent.VK_letra); Todas las componentes permiten fijar .tooltips0%

Clase J"utton ( !

!s un 'otn que puede contener te/to, grficos, o am'os%

*ijar el te/to siempre centrado, en caso de contener una imgen, 3a de ir a la i1quierda o encima del te/to% ncluir .%%%0 si precisa de ms informacin para llevar a ca'o la ejecucin%

Clase J"utton (

5$todos importantes:

setTe/t".Te/to0#6 setTooltipTe/t".Tooltip0#6 setBac7ground"new +olor"&, 8, B##6 set*oreground"+olor%color#6 set con"new mage con".ruta0##6 set*ont"new *ont".tipo0, estilio, tamao##6 setBounds"new &ectangle"pos9,pos:,tam9,tam:##6

: sus correspondientes get.

Clase J"utton (

!jemplo:
%&'tton (oton) * new %&'tton(); (oton).set&o'nds(new +ectangle(),-. /,. ),0. 1))); (oton).set&ackgro'nd(new Color(2). 034. 42)); (oton).setForegro'nd(Color.red); (oton).set$ool$#"$e!t(56r'e(a5); (oton).setFont(new Font(5Com#c Sans MS5.Font.BOLD. )1)); (oton).set$e!t(5&ot7n de "r'e(a5); (oton).setMnemon#c(8ey 9ent.VK_B);

.....

Clase J#oggle"utton ( !

!s un 'otn que representa dos estados "2n y 2ff#% 5ismas caracter;sticas que el )Button% (uede emplearse como dos tipos de opciones%

ndependientes "+3ec7'o/es#%

!/clusivas "&adioButton#%

Clase J#oggle"utton (

5$todos importantes:

5ismos m$todos que )Button, pero aadiendo algunos nuevos% isSelected"#6 setSelected"'oolean#6

!s posi'le aadir 'otones a grupos, para garanti1ar opciones mutuamente e/clusivas%

Clase JC$eck"o%

!s un control que representa dos estados "2n y 2ff#%

5ismas propiedades y m$todos que los anteriores% Se pueden emplear 5nemot$cnicos% 5$todos is electe!() y set electe!("oolean)

Clase J&adio"utton ( !

(ermiten seleccionar una <nica opcin dentro de un conjunto de opciones relacionadas%

Slo puede 3a'er una opcin seleccionada a la ve1% =unque tiene la misma funcin que los 'otones de conmutacin agrupados, conviene usar los radio 'otones en dilogos, y los de conmutacin en 'arras de 3erramientas% 5$todos similares a los de )+3ec7Bo/

Clase J&adio"utton (

>os 'otones de radio "como los c3ec7'o/es#, suelen aparecer agrupados, con una leyenda identificativa%

(ara ello, en Swing se utili1a un panel, con un 'orde y un t;tulo, agrupandolos en un #$tton%ro$p%

Clase JCo'bo"o% ( !

!sta componente nos permite, al 3acer clic7 so're ella, seleccionar una opcin de entre un conjunto, todas ellas mutuamente e/clusivas%

!l te/to de los ;tems 3a de ir capitali1ado% *acilitar el acceso por teclado mediante etiquetas con mnemot$cnicos%

Clase JCo'bo"o% (

Se pueden generali1ar en dos tipos:


!dita'les ?o edita'les

5$todos:

set!dita'le"'oolean#6 add tem"2'jeto#6 getSelected tem"#6

Clase JCo'bo"o% (

!jemplo:

private Str#ng:; conten#dos *{5Man<ana5.5Naran=a5.56latano5.5$#('ron5.5$omate5.5$r'cha5}; private %Com(o&o! =Com(o&o!) * new %Com(o&o!(conten#dos);

Str#ng nom(re* (Str#ng) =Com(o&o!).getSelectedItem(); =$e!tF#eld).set$e!t(5 sto es 'n 5 > nom(re); =La(el0.setIcon(new ImageIcon(5#magenes?5>nom(re>5.g#@5));

Clase JList ( !

!s un componente que muestra un conjunto de ;tems de te/to, grfico o am'os% (ermite tres tipos de seleccin:

@tem <nico &ango simple &ango m<ltiple


.setSelectionMode(ListSelectionModel.SELECTION); Donde S!>!+T 2? puede ser:

5ediante el m$todo:

SINGLE_SELECTION SINGLE_INTERVAL_SELECTION MULTI LE_INTERVAL_SELECTION

Clase JList (

!jemplo:

private Str#ng:; conten#dos*{5elemento)5. 5elemento05.5elemento35.5elemento15.5elemento/5}; private %L#st*new %L#st(conten#dos);

=$e!tF#eld).set$e!t((Str#ng)=L#st).getSelectedAal'e());

(tras clases de co'ponentes

)(rogressBar

)Slider

Co'ponentes para te%to ( !

)>a'el

5uestra te/to, grficos o am'os, slo lectura% Aa de estar desactivado si lo est el componente%

)Te/t*ield

5uestra una linea de te/to que puede ser edita'le% +on set&ext('&exto() se le asigna el te/to%

Co'ponentes para te%to (

)(assword*ield

2culta los caracteres introducidos por el usuario%


setEc)oC)ar(*c)ar*) indica el carcter de mscara% get+asswor!() recupera el password introducido%

)Te/t=rea

!spacio rectangular en el que ver y editar m<ltiples l;neas de te/to% (ara que apare1can 'arras de scroll de'e ir dentro de un )Scroll(ane%

Mens (I)

>os men<s 3an de ir en la ventana principal de la aplicacin% !s posi'le asignarles un grfico% +ada t;tulo de men< de'e tener su mnemot$cnico% (ueden ser de tres tipos:

DropBDown Su'menu +onte/tuales

)en*s (

>os men< .DropBDown0 son los que saldrn al, por ejemplo, 3acer clic7 en =rc3ivo% >os su'menus son aquellos que salen como un grupo de un elemento de men<% >os men<s conte/tuales, "clase )(opup5enu# son aplica'les a la regin en la que est locali1ado el puntero del ratn% >os mnemot$cnicos de los men<s conte/tuales 3an de coincidir con los del men< .DropBDown0%

)en*s (

Son las clases JMen$#ar, JMen$ y JMen$,tem% Aan de seguir la siguiente jerarqu;a:

Contenedores ( !

+lase J&ool#ar

Son 'otones de comando o conmutacin% Se suelen emplear grficos% 5$todos set-lota"le("oolean) y a!! eparator()

Contenedores (

+lase J+anel :

!s un contenedor que agrupa componentes dentro de una ventana% >os layouts permiten una correcta posicionacin de los componentes% !s un contenedor que permite tener varios componentes separador por pestaas% 5$todos

+lase J&a""e!+ane:

+ilogos

Son ventanas mas limitadas que los *rames, y dependientes de estos, si se destruye el *rame, tam'i$n lo 3ace el dilogo% (ueden ser:

?o modales: ?o impiden interactuar con el *rame% 5odales: mpiden interactuar con el resto%

>os ms importantes son: )2ption(ane y )*ile+3ooser%

+ilogo J(ption,ane ( !

(ermite adaptar y crear varias clases de dilogos, especificando por ejemplos los iconos, el t;tulo y te/to de los dilogos% >os iconos estndar son: .$estion/ in0ormation/ warning y error% >os m$todos principales son:

s3ow5essageDialog s3ow+onfirmDialog

+ilogo J(ption,ane (

s3ow5essageDialog:

!O"tion #ne.s$o%Mess#&eDi#lo&(t$is'(Mens#)e('(Tit*lo('!O"tion #ne. +ARNING_MESSAGE);

s3ow+onfirmDialog:
int,-es",.,!O"tion #ne.s$o%Con/i-0Di#lo&(t$is'(Mens#)e('(Tit*lo(', !O"tion #ne.1ES_NO_O TION); int,-es",., !O"tion #ne.s$o%Con/i-0Di#lo&(t$is'(Mens#)e('(Tit*lo('!O"tion #ne. 1ES_NO_CANCEL_O TION); int,-es",.,!O"tion #ne.s$o%Con/i-0Di#lo&(t$is'(Mens#)e('(Tit*lo(', !O"tion #ne.OK_CANCEL_O TION); i/,(-es",..,!O"tion #ne.1ES_O TION)2 ..... ,,3

+ilogo JFileC$ooser ( !

(ermite navegar por el sistema de fic3eros, y seleccionar uno o varios fic3eros% !jemplo:
"-i4#te,!5ileC$oose-,)5ileC$oose-6,.,ne%,!5ileC$oose-(); .,.,. i/,()5ileC$oose-6.s$o%O"enDi#lo&(t$is)..)5ileC$oose-6.A 2 )Te7t5ield6.setTe7t(8A 3 else )Te7t5ield6.setTe7t(8CANCEL_O TION8); ROVE_O TION8); )Te7t5ield9.setTe7t()5ileC$oose-6.&etSelected5ile().&etN#0e()); ROVE_O TION)

+ilogo JFileC$ooser (

5$todos importantes:

multiSelection!na'led"'oolean#6 getSelected*ile"#6

La-outs ( !

ndican la forma de organi1ar los componentes dentro de un contenedor, determinando el tamao y la posicin% (ara su uso:

+rear el contenedor% !sta'lecer el layout% =gregar los componentes el contenedor%

La-outs (

Tipos de layouts:

*low>ayout Border>ayout 8rid>ayout Bo/>ayout 8ridBag>ayout )(anel BC *low>ayout )*rame, )Dialog BC Border>ayout

(or defecto:

La-outs (

*low>ayout:

!s el ms simple, los componentes aadidos a un contenedor se disponen en una o mas filas, de i1quierda a derec3a y de arri'a a a'ajo% 4tili1a D reas para colocar los componentes: ?orte, Sur, !ste, 2este y +entro% Si alguna no se ocupa, se e/pande la contigua%

Border>ayout:

La-outs ( .!

8rid>ayout:

!l controlador se crea con un determinado numero de filas y columnas% >os componentes se situan de forma secuencial, de i1quierda a derec3a y de arri'a a a'ajo% !l tamao de las celdas es id$ntico% (ermite organi1ar los componentes en una l;nea 3ori1ontal o vertical, sin dejar espacio entre los componentes%

Bo/>ayout:

Crear nuestra aplicaci/n0 1clipse

(ara crear las aplicaciones, 'asndonos en lo e/plicado, utili1aremos el D! Eclipse/ j$nto con el pl$gin 'Vis$al E!itor(. Se puede descargar gratuitamente en $ttp022www3eclipse3org ?ecesario )ava instalado para poder ejecutarlo%

"ibliografia
.T3in7ing in )ava0 .T3e )*+ Swing tutorial : a guide to constructing 84 s.

)aterial adicional

Tanto el pdf de la c3arla como ejemplos de varias componentes se colgarn en:

3ttp:EEsep3o%almaqui%netEswingE

(ara cualquier duda podeis mandar un correo:

jacandelFei%upv%es