viernes, 5 de julio de 2013

AWT.JAVA



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