![]() |
Permite hacer interfaces gráficas mediante artefactos de interacción
con el usuario, como botones, menús, texto, botones para selección, barras de
deslizamiento, ventanas de diálogo, selectores de archivos, etc. Y por supuesto
despliegue gráfico general. La siguiente figura muestra algunos de estos
artefactos de interacción
Introducción al AWT
AWT es el acrónimo del X Window Toolkit para Java, donde X puede ser
cualquier cosa: Abstract, Alternative, Awkward, Another o Asqueroso; aunque
parece que Sun se decanta por Abstracto, seriedad por encima de todo. Se trata
de una biblioteca de clases Java para el desarrollo de Interfaces de Usuario
Gráficas. La versión del AWT que Sun proporciona con el JDK se desarrolló en
sólo dos meses y es la parte más débil de todo lo que representa Java como
lenguaje. El entorno que ofrece es demasiado simple, no se han tenido en cuenta
las ideas de entornos gráficos novedosos, sino que se ha ahondado en
estructuras orientadas a eventos, llenas de callbacks y sin soporte alguno del
entorno para la construcción gráfica; veremos que la simple acción de colocar
un dibujo sobre un botón se vuelve una tarea harto complicada. Quizá la presión
de tener que lanzar algo al mercado haya tenido mucho que ver en la pobreza de
AWT.
Java Soft, asegura que esto sólo era el principio y que AWT será
multi-idioma, tendrá herramientas visuales, etc. En fin, al igual que dicen los
astrólogos, el futuro nos deparará muchas sorpresas.
La estructura básica del AWT se basa en Componentes y Contenedores.
Estos últimos contienen Componentes posicionados a su respecto y son
Componentes a su vez, de forma que los eventos pueden tratarse tanto en
Contenedores como en Componentes, corriendo por cuenta del programador (todavía
no hay herramientas de composición visual) el encaje de todas las piezas, así
como la seguridad de tratamiento de los eventos adecuados. Nada trivial.
No obstante y pese a ello, vamos a abordar en este momento la
programación con el AWT para tener la base suficiente y poder seguir profundizando
en las demás características del lenguaje Java, porque como vamos a ir
presentando ejemplos gráficos es imprescindible el conocimiento del AWT.
Mientras tanto, esperemos que Java Soft sea fiel a sus predicciones y lo que
ahora veamos nos sirva de base para migrar a un nuevo y maravilloso AWT.
ESTRUCTURA DEL AWT
La estructura de la versión
actual del AWT podemos resumirla en los puntos que exponemos a continuación:
Ø Los
Contenedores contienen Componentes, que son los controles básicos
Ø No
se usan posiciones fijas de los Componentes, sino que están situados a través
de una disposición controlada (layouts)
Ø El
común denominador de más bajo nivel se acerca al teclado, ratón y manejo de
eventos
Ø Alto
nivel de abstracción respecto al entorno de ventanas en que se ejecute la
aplicación (no hay áreas cliente, ni llamadas a X, ni hWnds, etc.)
Ø La
arquitectura de la aplicación es dependiente del entorno de ventanas, en vez de
tener un tamaño fijo
Ø Es
bastante dependiente de la máquina en que se ejecuta la aplicación (no puede
asumir que un diálogo tendrá el mismo tamaño en cada máquina)
Ø Carece
de un formato de recursos. No se puede separar el código de lo que es
propiamente interface. No hay ningún diseñador de interfaces (todavía)
Interfaces gráficas: AWT
El paquete Abstract Window Toolkit pone a disposición del programador una serie de clases e interfaces gráficas.
El paquete java.awt incluye también unos subpaquetes que
son:
ü
java.awt.color
ü
java.awt.datatransfer
ü
java.awt.dnd
ü
java.awt.event
ü
java.awt.font
ü
java.awt.geom
ü
java.awt.im
ü
java.awt.image
ü java.awt.image.renderable
ü java.awt.print
Analizaremos algunas
funciones. Las clases del paquete swing han sido construidas sobre las clases
awt.
Awt incluye:
ü Interfaces ActiveEvent: interfaces para
sucesos que saben cómo se han activado.
ü Adjustable: interfaces para objetos que
tienen un valor numérico entre una serie de valores.
ü Composite: interfaz que sirve para
redactar las primitivas gráficas de awt.
ü CompositeContext: ambiente optimizado
para las operaciones de composición de primitivas.
ü ItemSelectable: interfaz para objetos
que incluyen un conjunto de item de los que pueden ser
ü Seleccionados
cero o más de uno.
ü LayoutManager: interfaz para las clases
que incluirán unos gestores de ajuste de página.
ü LayoutManager2,
como arriba.
ü MenuContainer: superclase de todos los
menús.
ü Paint: esta interfaz define los colores
que hay que utilizar para las operaciones gráficas usando Graphics2D.
ü PaintContext: ambiente optimizado para las
operaciones de redacción de primitivas gráficas usando
ü Graphics2D.
ü PrintGraphics: define el contexto para
imprimir.
ü Shape: definicciones para construir una
forma geométrica.
ü Stroke: más decoraciones para las
formas.
ü Transparency: define los tipos más
comunes de transparencia.
Clases
ü AlphaComposite: clase que implementa
las composiciones del factor alfa de los colores utilizando el blending y la
transparecia de gráfica y las imágenes.
ü AWTEvent: root de los sucesos de AWT.
ü AWTEventMulticaster: dispatcher para
suceos AWT, eficaz y multiprogramable. Hace el multicast de sucesos a varios
componentes.
ü AWTPermission: para los permisos AWT.
ü BasicStroke: atributos para las líneas
externas de las primitivas gráficas.
ü BorderLayout, es el primer gestor de
ajuste de línea. Estos gestores, que analizaremos dentro de muy poco, sirven
apra disponer los elementos (los componentes) en los contenedores. Éste divide
el contenedor en 5 partes: norte, sur, este, oeste y centro.
ü Button, clase de los botones.
ü Canvas, área en la que se puede dibujar
una aplicación.
ü CardLayout, otro gestor de layout.
ü Checkbox, CheckboxGroup,
CheckboxMenuItem gestionan los botones de tipo booleano (apretado o no
apretado)
ü Choice, presenta un menú a cortina para
elegir.
ü Color, colores en RGB o en otros
espacios arbitrarios de colores.
ü Component, Clase de la que derivan
todos los componentes GUI (pulsadores, etiquetas,…)
ü ComponentOrientation, orientación de
los componentes.
ü Container, contenedor de los
componentes.
ü Cursor, cursores.
ü Dialog, ventanas de diálogo en las que
se indican errores y no sólo eso.
ü Dimension, cajas que gestionan el
tamaño de los componentes, la altura y la anchura.
ü Event, clase que gestiona los sucesos
según el viejo modelo de gestión de los sucesos (Java 1.0.
ü EventQueue, cola de sucesos.
ü FileDialog, dialog especial que
gestiona el input y el output del archivo. Es muy cómoda.
ü FlowLayout: otro gestor del ajuste de
línea.
ü Font: fonts para el texto.
ü FontMetrics: atributos para las font.
ü Frame: clase ya analizada que
implementa las ventanas con título y marco.
ü GradientPaint: rellena las figuras con
colores lineares.
ü Graphics: contexto gráfico en el que se
puede dibujar.
ü Graphics2D: nuevo contexto gráfico,
incluido con Java 2, que da otras sofisticadas posibilidades al dibujo.
ü GraphicsConfiguration: describe las
características del destino de la gráfica que puede ser el monitor o la
impresora.
ü GraphicsConfigTemplate: utilizada para
obtener una GraphicsConfiguration válida.
ü GraphicsEnvironment: describe los
ambientes gráficos y los font que se pueden utilizar para cada específica
plataforma de Java.
ü GraphicsDevice: describe el
GraphicDevice que se puede utilizar en un cierto ambiente.
ü GridBagConstraints, GridBagLayout,
GridLayout, gestores del ajuste de línea.
ü Image: superclase para todas las clases
que representan una imágen gráfica.
ü Insets: representa el borde de un
contenedor.
ü Label: etiqueta.
ü List: listado
ü MediaTracker: clase de utilidad para
gestionar objetos multimediales.
ü Menu: menú de tipo pull-down (a
descenso).
ü MenuBar: barra de los menús.
ü MenuComponent: superclase de todos los
componentes de los menús.
ü MenuItem: Voz de menú.
ü MenuShortcut: sirve para representar el
acelerador para una voz de menú.
ü Panel: contenedor.
ü Point: punto en las coordenadas x,y.
ü Polygon: polígono.
ü PopupMenu: menú de tipo invisible.
ü PrintJob: sirve para inicializar y para
imprimir.
ü Rectangle: rectángulo.
ü RenderingHints incluye ayudas para el
rendering utilizadas por Graphics2D.
ü RenderingHints.Key: define las teclas
utilizadas para controlar los diferentes aspectos del rendering.
ü Scrollbar: barra de desplazamiento.
ü ScrollPane: panel con dos barras de
desplazamiento.
ü SystemColor: representa los colores
simbólicos de un objeto GUI en un sistema.
ü TextComponent: superclase de todos los
componentes que incluyen el texto.
ü TextArea: área de testo.
ü TextField: simple línea de texto.
ü TexturePaint: cómo rellenar una figura
con una texture.
ü Toolkit:
superclase del Abstract Window Toolkit.
ü Window: ventana (sin borde y barra de
menú).
Excepciones
ü AWTException
ü IllegalComponentStateException
ü Errores
ü AWTError
Jerarquía de clases de AWT
Cada una de las
componentes de una ventana en AWT se representa mediante uno o más objetos de
la aplicación. Estos objetos pertenecen a las clases que se observan en la
siguiente jerarquía de clases para AWT
No hay comentarios:
Publicar un comentario