Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Look up keyword
Like this
28Activity
0 of .
Results for:
No results containing your search query
P. 1
Swing

Swing

Ratings:

4.0

(2)
|Views: 1,686|Likes:
Published by api-3702309

More info:

Published by: api-3702309 on Oct 18, 2008
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

03/18/2014

pdf

text

original

1
Parte I - Bases

La Parte I se compone de dos cap\u00edtulos que sientan las bases para un aprendizaje productivo y exitoso de la librer\u00eda de clases JFC/Swing. El primero empieza con un breve vistazo de lo qu\u00e9 es Swing y una introducci\u00f3n a su arquitectura. El segundo profundiza un poco m\u00e1s en una discusi\u00f3n detallada de los principales mecanismos subyacentes de Swing, y como interactuar con ellos. Hay varias secciones sobre temas que son bastante avanzados, como la multitarea y el dibujo en pantalla. Este material es com\u00fan a varias \u00e1reas de Swing e introduci\u00e9ndolo en el cap\u00edtulo 2, su comprensi\u00f3n de lo que vendr\u00e1 posteriormente mejorar\u00e1 notablemente. Contamos con que tendr\u00e1 que volver a \u00e9l a menudo, y en alg\u00fan lugar le instaremos expl\u00edcitamente a que lo haga. Como m\u00ednimo, le recomendamos que conozca los contenidos del cap\u00edtulo 2 antes de seguir adelante.

Cap\u00edtulo 1. Un vistazo a Swing
En este cap\u00edtulo:
\u2022
AWT
\u2022
Swing
\u2022
MVC
\u2022
Delegados UI y PLAF
1.1 AWT

AWT (Abstract Window Toolkit) es la parte de Java dise\u00f1ada para crear interfaces de usuario y para dibujar gr\u00e1ficos e im\u00e1genes. Es un conjunto de clases que intentan ofrecer al desarrollador todo lo que necesita para crear una interfaz de usuario para cualquier applet o aplicaci\u00f3n Java. La mayor\u00eda de los componentes AWT descienden de la clasej av a .a w t. C om p on e nt como podemos ver en la figura 1.1. (Obs\u00e9rvese que las barras de men\u00fa de AWT y sus \u00edtems no encajan dentro de la jerarqu\u00eda de

Component.)
Figura 1.1 Jerarqu\u00eda parcial de Components
<<fichero figure1-1.gif>>
2

JFC est\u00e1 compuesto de cinco partes fundamentales: AWT, Swing, Accesibilidad, Java 2D, y Arrastrar y
Soltar. Java 2D se ha convertido en una parte m\u00e1s de AWT, Swing est\u00e1 construido sobre AWT, el
soporte de accesibilidad se ha construido dentro de Swing. Las cinco partes de JFC no son en absoluto
mutuamente exclusivas, y se espera que Swing se fusione m\u00e1s profundamente con AWT en futuras
versiones de Java. El API de Arrastrar y Soltar no estaba totalmente desarrollado durante la escritura de
este libro pero esperamos que esta tecnolog\u00eda se integre m\u00e1s con Swing y AWT en un futuro pr\u00f3ximo.
De este modo, AWT est\u00e1 en el coraz\u00f3n de JFC, lo que la convierte en una de las librer\u00edas m\u00e1s
importantes de Java 2.

1.2 Swing

Swing es un extenso conjunto de componentes que van desde los m\u00e1s simples, como etiquetas, hasta los m\u00e1s complejos, como tablas, \u00e1rboles, y documentos de texto con estilo. Casi todos los componentes Swing descienden de un mismo padre llamadoJ Co m po n en t que desciende de la clase de AWT

Container. Es por ello que Swing es m\u00e1s una capa encima de AWT que una sustituci\u00f3n del mismo. La
figura 1.2 muestra una parte de la jerarqu\u00eda deJ C om p on e nt. Si la compara con la jerarqu\u00eda de
Component notar\u00e1 que para cada componente AWT hay otro equivalente en Swing que empieza con
"J". La \u00fanica excepci\u00f3n es la clase de AWTCanvas, que se puede reemplazar conJ Co m po n en t,
JLabel, o JPanel (en la secci\u00f3n 2.8 abordaremos esto en detalle). Asimismo se percatar\u00e1 de que
existen algunas clases Swing sin su correspondiente hom\u00f3logo.

La figura 1.2 representa s\u00f3lo una peque\u00f1a fracci\u00f3n de la librer\u00eda Swing, pero esta fracci\u00f3n son las clases con las que se enfrentar\u00e1 m\u00e1s a menudo. El resto de Swing existe para suministrar un amplio soporte y la posibilidad de personalizaci\u00f3n a los componentes estas clases definen.

Figura 1.2 Parte de la jerarqu\u00eda de JComponent
<<fichero figure1-2.gif>>
3
1.2.1 Orden Z

A los componentes Swing se les denominal igeros mientras que a los componentes AWT se les denominadospesados. La diferencia entre componentes ligeros y pesados es suorden: la noci\u00f3n de profundidad. Cada componente pesado ocupa su propia capa de orden Z. Todos los componentes ligeros se encuentran dentro de componentes pesados y mantienen su propio esquema de capas definido por Swing. Cuando colocamos un componente pesado dentro de un contenedor que tambi\u00e9n lo es, se superpondr\u00e1 por definici\u00f3n a todos los componentes ligeros del contenedor.

Lo que esto significa es que debemos intentar evitar el uso de componentes ligeros y pesados en un mismo contenedor siempre que sea posible. Esto no significa que no podamos mezclar nunca con \u00e9xito componentes AWT y Swing, s\u00f3lo que tenemos que tener cuidado y saber qu\u00e9 situaciones son seguras y cu\u00e1les no. Puesto que probablemente no seremos capaces de prescindir completamente del uso de componentes pesados en un breve espacio de tiempo, debemos encontrar formas de que las dos tecnolog\u00edas trabajen juntas de manera aceptable.

La regla m\u00e1s importante a seguir es que no deber\u00edamos colocar componentes pesados dentro de contenedores ligeros, que com\u00fanmente soportan hijos que se superponen. Algunos ejemplos de este tipo de contenedores sonJ In t er n al F ra m e, JS c ro l lP a ne, J L ay e re d Pa n e, y J D es k to p Pa n e. En segundo lugar, si usamos un men\u00fa emergente en un contenedor que posee un componente pesado, tenemos que forzar a dicho men\u00fa a ser pesado. Para controlar esto en una instancia espec\u00edfica de

JPopupMenu podemos usar su m\u00e9todo setLightWeightPopupEnabled().

Nota: ParaJM e nus (que usanJ P op u pM e nus para mostrar sus contenidos) tenemos que usar primero el m\u00e9todoge t Po p up M en u () para recuperar su men\u00fa emergente asociado. Una vez recuperado podemos llamar entonces as e tL i gh t We i gh t Po p up E na b le d (f a ls e ) en \u00e9l para imponer funcionalidad pesada. Esto tiene que hacerse con cadaJ Me n u de nuestra aplicaci\u00f3n, incluyendo men\u00fas dentro de men\u00fas, etc.

Alternativamente podemos llamar al m\u00e9todo est\u00e1ticos et D ef a ul t Li g ht W ei g ht P op u pE n ab l ed ( ) deJ P op u pM e nu y pasarle un valorfa l se para forzar a todos los men\u00fas emergentes de una sesi\u00f3n de Java a ser pesados. Tenga en cuenta que s\u00f3lo afectar\u00e1 a los men\u00fas emergentes creados a partir de que se ha hecho la llamada. Es por eso una buena idea llamar a este m\u00e9todo durante la inicializaci\u00f3n.

1.2.2 Independencia de la plataforma

La caracter\u00edstica m\u00e1s notable de los componentes Swing es que est\u00e1n escritos al 100% en Java y no dependen de componentes nativos, como sucede con casi todos los componentes AWT. Esto significa que un bot\u00f3n Swing y un \u00e1rea de texto se ver\u00e1n y funcionar\u00e1n id\u00e9nticamente en las plataformas Macintosh, Solaris, Linux y Windows. Este dise\u00f1o elimina la necesidad de comprobar y depurar las aplicaciones en cada plataforma destino.

Nota: Las \u00fanicas excepciones a esto son los cuatro componentes pesados de Swing que son subclases directas
de clases de AWT, que dependen de componentes nativos:JA p pl e t,J D ia l og,J Fr a me, y
JWindow. Ver cap\u00edtulo 3.
1.2.3 Vistazo al paquete Swing
javax.swing
Contiene la mayor parte de los componentes b\u00e1sicos de Swing, modelos de componente por
defecto, e interfaces. (La mayor\u00eda de las clases mostradas en la Figura 1.2 se encuentran en este

Activity (28)

You've already reviewed this. Edit your review.
1 hundred reads
1 thousand reads
Elivar Largo liked this
Aguirre Fernando liked this
freysant liked this
softdonet liked this

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->