Diferencia entre revisiones de «AWT»

m (Texto reemplazado: «Category:» por «Categoría:»)
 
(No se muestran 7 ediciones intermedias de 2 usuarios)
Línea 1: Línea 1:
 
{{Ficha Software
 
{{Ficha Software
 
|nombre= AWT (Abstract Window Toolkit)
 
|nombre= AWT (Abstract Window Toolkit)
|familia= Java
+
|familia= [[Java]]
|imagen=  
+
|imagen= AWT_ejemplo.jpg
 
|tamaño=
 
|tamaño=
|descripción=  
+
|descripción= Ejemplo de algunos de los componentes gráficos de AWT
 
|imagen2=
 
|imagen2=
 
|tamaño2=
 
|tamaño2=
Línea 25: Línea 25:
 
|premios=
 
|premios=
 
|web=[http://www.java.com/es/ Java en Español]
 
|web=[http://www.java.com/es/ Java en Español]
}}''Abstract Window Toolkit''' (AWT, en español Kit de Herramientas de Ventana Abstracta). Kit de herramientas de gráficos, interfaz de usuario, y sistema de ventanas independiente de la plataforma original de [[Java |Lenguaje de programación Java]]. AWT es ahora parte de las [[Java Foundation Classes]] (JFC) - la [[API Java | API]] estándar para suministrar una [[interfaz gráfica de usuario]] ([[GUI]]) para un programa Java.
+
}}'''Abstract Window Toolkit'''. (AWT, en español Kit de Herramientas de Ventana Abstracta). Conjunto de herramientas GUI (Interfaz Gráfica con el Usuario) diseñadas para trabajar con múltiples plataformas. Interfaz de usuario, y sistema de ventanas independiente de la plataforma original de [[Java |Lenguaje de programación Java]]. AWT es parte de las [[Java Foundation Classes]] (JFC) - la [[API Java | API]] estándar para suministrar una [[interfaz gráfica de usuario]] ([[GUI]]) para un programa Java.
  
== Inicios ==  
+
== Paquetes gráficos de las JFC ==
Cuando [[Sun Microsystems]] liberó Java en [[1995]], AWT suministró solo un nivel de abstracción muy fino sobre la interfaz de usuario nativa subyacente. Por ejemplo, crear una caja de verificación AWT causaría que AWT directamente llame a la subrutina nativa subyacente que cree una caja de verificación. Sin embargo, una caja de verificación en [[Microsoft Windows]] no es exactamente lo mismo que una caja de verificación en [[Mac OS]] o en los distintos tipos de [[UNIX]].
+
Las [[JFC]] ([[Java Foundation Classes]]) son parte de la [[API]] de [[Java]] compuesto por clases que sirven para crear interfaces gráficas visuales para las aplicaciones y [[applets]] de Java.
  
Algunos desarrolladores de aplicaciones prefieren este modelo porque suministra un alto grado de fidelidad al kit de herramientas nativo subyacente y mejor integración con las aplicaciones nativas. En otras palabras, un programa GUI escrito usando AWT parece como una aplicación nativa Microsoft Windows cuando se ejecuta en Windows, pero el mismo programa parece una aplicación nativa [[Apple Macintosh]] cuando se ejecuta en un Mac, etc. Sin embargo, algunos desarrolladores de aplicaciones desprecian este modelo porque prefieren
+
Así como Sun presenta estas JFC, [[Microsoft]] ha desarrollado otro paquete propio con el nombre de AFD (Application Foundation Classes).
que sus aplicaciones se vean exactamente igual en todas las plataformas.  
 
  
== Biblioteca de componentes  ==
+
Las JFC contienen dos paquetes gráficos: AWT y [[Swing]].
Desde sus inicios el entorno Java ya contaba con una biblioteca de componentes gráficos conocida como AWT. Esta biblioteca estaba concebida como una [[Interfaz de programación de aplicaciones|API]] estandarizada que permitía utilizar los componentes nativos de cada sistema operativo. Entonces una [[Aplicación informática|aplicación]] Java corriendo en [[Microsoft Windows]] usaría el botón estándar de Windows y una aplicación corriendo en [[UNIX]] usaría el botón estándar de [[Motif]]. En la práctica esta tecnología no funcionó:
 
  
* Al depender fuertemente de los componentes nativos del sistema operativo el programador [[AWT]] estaba confinado a un mínimo denominador común entre ellos. Es decir que sólo se disponen en AWT de las funcionalidades comunes en todos los sistemas operativos.
+
*'''AWT''': Presenta componentes pesados, que en cada plataforma sólo pueden tener una representación determinada. Está disponible desde la versión 1.1 del JDK como java.awt.
* El comportamiento de los controles varía mucho de sistema a sistema y se vuelve muy difícil construir aplicaciones [[portable]]s. '''Fue por esto que el eslogan de Java "Escríbalo una vez, ejecútelo en todos lados" fue parodiado como "Escríbalo una vez, pruébelo en todos lados".'''
 
  
== Widgets de AWT ==
+
*'''Swing''': Presenta componentes ligeros, que pueden tomar diferente aspecto y comportamiento pues lo toman de una biblioteca de clases. Está disponible desde la versión 1.2 del [[JDK]] como javax.swing aunque antes se podían encontrar versiones previas como com.sun.java. o como java.awt.swing.
En [[Java SE|J2SE 1.2]], los widgets de AWT fueron ampliamente superados por aquellos del kit de herramientas [[Swing (biblioteca gráfica)|Swing]]. Además de proveer un conjunto más rico de widgets UI, Swing dibuja sus propios widgets (usando [[Java 2D]] para llamar a las subrutinas de bajo nivel en el subsistema de gráficos local) en lugar de confiar en el módulo de interfaz de usuario de alto nivel del sistema operativo. Swing suministra la opción de usar un aspecto nativo o de plataforma cruzada para la aplicación.  
 
  
== Actualidad ==
+
== Clases de AWT ==
 +
[[Image:Clases_AWT.jpg‎ |thumb|right|350px|Jerarquía de clases de AWT]]Este paquete viene incluido en la API de Java como java.awt ya desde su primera versión, con lo que las interfaces generadas con esta biblioteca funcionan en todos los entornos Java disponibles (incluyendo navegadores, lo que les hace especialmente eficientes para la creación de applets Java).
  
AWT continúa suministrando el núcleo del subsistema de eventos GUI y la interfaz entre el sistema de ventanas nativo y la aplicación Java, suministrando la estructura que necesita Swing. También suministra gestores de disposición básicos, un paquete de transferencia de datos para uso con el [[Bloc de notas]] y [[Drag 'n drop|Arrastrar y Soltar]], y la interface para los dispositivos de entrada tales como el [[mouse|ratón]] y el [[Teclado (computación)|teclado]].  
+
*'''Component''': Esta clase representa a cualquier objeto que puede ser parte de una interfaz gráfica de usuario. Es la clase padre de muchas de las clases del AWT.
 +
 
 +
Su propósito principal es representar algo que tiene una posición y un tamaño, que puede ser dibujado en la pantalla y que pueda recibir eventos de entrada (que responda a las interacciones con el usuario).
 +
 
 +
*'''Container''': La clase Container sabe cómo mostrar componentes embebidos (que a su vez pueden ser instancias de la clase Container).
 +
 
 +
Estos objetos Container tienen un LayoutManager asociado que define la manera en que van a posicionarse los objetos componentes en su interior.
 +
 
 +
*'''LayoutManager y LayoutManager2''': son dos interfaces encargadas de la representación y posicionamiento en pantalla de componentes AWT.
 +
 
 +
*'''Otras clases''': Por supuesto AWT no se limita a estas clases. Dentro de esta biblioteca podemos encontrar multitud de clases prefabricadas para facilitar el diseño gráfico.
 +
 
 +
== Clase Component ==
 +
Su propósito principal es representar algo que tiene una posición y un tamaño, que puede ser dibujado en la pantalla y que pueda recibir eventos de entrada (que responda a las interacciones con el usuario).
 +
 
 +
La clase Component presenta diversos métodos, organizados para cubrir varios propósitos.
 +
 
 +
A continuación se explican algunos de ellos.
 +
 
 +
===Tamaño y posición del componente===
 +
 
 +
* Dimension getSize(); Devuelve la anchura y altura del componente como un objeto de la clase Dimension, que tiene como campos: width (anchura) y heigth (altura).
 +
 
 +
* void setSize(int ancho, int largo); Establece la anchura y altura del componente.
 +
 
 +
* Dimension getPreferredSize(); Devuelve el tamaño que este componente debería tener.
 +
 
 +
* void setPreferredSize(); Establece el tamaño que este componente debería tener.
 +
 
 +
* Dimension getMinimumSize(); Devuelve el tamaño mínimo que este componente debería tener.
 +
 
 +
* void setMinimumSize(int ancho, int largo); Establece el tamaño mínimo que este componente debería tener.
 +
 
 +
* Rectangle getBounds(); Devuelve las coordenadas de este componente como un objeto de la clase Rectangle, que tiene como campos: x, y, width y heigth.
 +
 
 +
* void setBounds(int x, int y, int ancho, int largo); Establece las coordenadas de este componente.
 +
 
 +
=== Acciones sobre el componente ===
 +
 
 +
* boolean getEnabled(); Comprueba si el componente está o no activo.
 +
 
 +
* void setEnabled(boolean); Establece el componente a activo o inactivo.
 +
 
 +
* boolean getVisible(); Comprueba si el componente está o no visible.
 +
 
 +
* void setVisible(boolean); Establece si el componente está visible o invisible.
 +
 
 +
* void paint(Graphics g); Indica al AWT que ha de dibujar el componente g.
 +
 
 +
* void repaint(); Indica al AWT que ha de volver a dibujar el componente.
 +
 
 +
* void update(Graphics g); Es llamado por AWT cuando se invoca el método repaint(). Por defecto llama a paint().
 +
 
 +
=== Eventos de interacción con el usuario ===
 +
 
 +
A su vez hay tres tipos de métodos, para la gestión de eventos mediante el nuevo modelo de eventos de AWT (desde la versión 1.1).
 +
 
 +
Hay tres tipos de métodos:
 +
 
 +
* void add_Tipo_Listener(_Tipo_Listener l); Añade un oyente a la espera de algún tipo de eventos sobre este componente.
 +
 
 +
* void remove_Tipo_Listener(_Tipo_Listener l); Elimina algún oyente que estaba a la espera de algún tipo de eventos sobre este componente.
 +
 
 +
* void process_Tipo_Event(_Tipo_Event e); Procesa eventos del tipo _Tipo_Event enviándolos a cualquier objeto _Tipo_Listener que estuviera escuchando.
 +
 
 +
En estos métodos _Tipo_ puede ser cualquiera de los siguientes:
 +
 
 +
Component, Focus, InputMethod, Key, Mouse, MouseMotion.
 +
 
 +
== Clase Container ==
 +
 
 +
La clase Container sabe cómo mostrar componentes embebidos (que a su vez pueden ser instancias de la clase Container).
 +
 
 +
Algunos de los métodos de la clase Container son:
 +
 
 +
* Component add(Component c); Añade un componente al contenedor.
 +
 
 +
* void print(Graphics g); Imprime el contenedor.
 +
 
 +
* void printComponents(Graphics g); Imprime cada uno de los componentes de este contenedor.
 +
 
 +
* LayoutManager getLayout(); Devuelve el gestor de impresión (LayoutManager) asociado a este contenedor, que es el responsable de colocar los componentes dentro del contenedor.
 +
 
 +
* void setLayout(LayoutManager 1); Establece un gestor de impresión para este componente.
 +
 
 +
Estos objetos Container tienen un LayoutManager asociado que define la manera en que van a posicionarse los objetos componentes en su interior.
 +
 
 +
== Gestores de impresión ==
 +
 
 +
LayoutManager y LayoutManager2 son dos interfaces encargadas de la representación y posicionamiento en pantalla de componentes AWT.
 +
 
 +
De estas interfaces se proporcionan cinco implementaciones en AWT. Cada una de ellas reparte los objetos de una forma particular:
 +
 
 +
* BorderLayout: En cinco lugares: Norte, Sur, Este, Oeste y Centro (North, South, East, West y Center).
 +
 
 +
* CardLayout: Permite gestionar varios componentes de los que sólo uno se visualiza a la vez, permaneciendo los demás invisibles debajo.
 +
 
 +
* FlowLayout: De izquierda a derecha horizontalmente en cada línea. Cuando sobrepasan una línea se comienza a la izquierda de la siguiente.
 +
 
 +
* GridLayout: Es una tabla en la que todas las casillas tienen el mismo tamaño.
 +
 
 +
* GridBagLayout: Es una tabla, pero las casillas no tienen que tener el mismo tamaño.
 +
 
 +
==Otras clases==
 +
 
 +
Dentro de esta biblioteca podemos encontrar multitud de clases prefabricadas para facilitar el diseño gráfico.
 +
 
 +
A continuación explicamos algunas de ellas.
 +
 
 +
=== Clases contenedoras (hijas de Container)===
 +
*Panel: Permite hacer una presentación más avanzada que Container mediante la combinación con subpaneles o subclases para crear contenedores personalizados. La clase Applet que sirve para crear applets Java, hereda de esta clase Panel.
 +
 
 +
* ScrollPane: Una barra de desplazamiento, horizontal o vertical.
 +
 
 +
* Window: Una ventana sin borde.
 +
 
 +
* Frame: Una ventana que no tiene borde. Puede tener asociado un objeto Menubar (una barra de herramientas o barra de menú personalizada).
 +
 
 +
* Dialog: Una ventana usada para crear diálogos. Tiene la capacidad de ser modal con lo que sólo este contenedor recibiría entradas del usuario.
 +
 
 +
* Filedialog: Un diálogo que usa el selector de archivos nativo del sistema operativo.
 +
 
 +
===  Clases componentes (hijas directas de Component) ===
 +
 
 +
* Button: Un botón gráfico para el que se puede definir una acción que sucederá cuando se presione el botón.
 +
 
 +
* Canvas: Permite pintar o capturar eventos del usuario. Se puede usar para crear gráficos o como clase base para crear una jerarquía de componentes personalizados.
 +
 
 +
* Checkbox: Soporta dos estados: on y off. Se pueden asociar acciones que se ejecuten (triggers) cuando el estado cambie.
 +
 
 +
* Choice: Menú desplegable de opciones.
 +
 
 +
* Label: Cadena de etiqueta en una localización dada.
 +
 
 +
* List: Una lista desplegable de cadenas.
 +
 
 +
* Scrollbar: Desplegable de objetos Canvas.
 +
 
 +
* TextComponent: Cualquier componente que permita editar cadenas de texto.Tiene dos clases hijas:
 +
 
 +
* TextField: Componente de texto consistente en una línea que puede ser usada para construir formularios.
 +
 
 +
*TextArea: Componente para edición de texto de tamaño variable.
 +
 
 +
==Eventos de AWT==
 +
 
 +
AWT tiene sus propios eventos, que se explican a continuación.
 +
 
 +
===Eventos físicos===
 +
 
 +
Son todos hijos del evento ComponentEvent, que indica algún cambio en un objeto Component:
 +
 
 +
* InputEvent: Se ha producido una entrada del usuario. Tiene como eventos hijos KeyEvent (pulsación de una tecla) y MouseEvent (acción sobre el ratón).
 +
 
 +
* FocusEvent: Avisa al programa de que el componente ha ganado o perdido la atención (enfoque) del usuario. Esto se deduce de la actividad del usuario (ratón y teclado).
 +
 
 +
* WindowEvent: Avisa al programa de que el usuario ha utilizado uno de los controles de ventana a nivel del sistema operativo, como los controles de minimizar o cerrar.
 +
 
 +
* ContainerEvent: Se envía cuando se añaden o eliminan componentes a un contenedor.
 +
 
 +
* PaintEvent: Evento especial que señala que el sistema operativo quiere dibujar de nuevo una parte de la interfaz. Un componente debe sobreescribir el método paint() o el método update() para gestionar este evento.
 +
 
 +
===Eventos semánticos===
 +
 
 +
Son todos hijos del evento AWTEvent, que es el evento base de la jerarquía de eventos:
 +
 
 +
* ActionEvent: Avisa al programa de acciones específicas de componentes como las pulsaciones de botones.
 +
 
 +
* AdjustmenteEvent: Comunica que una barra de desplazamiento ha sido ajustada.
 +
 
 +
* ItemEvent: Avisa al programa cuando el usuario interacciona con una elección, una lista o una casilla de verificación.
 +
 
 +
* TextEvent: Avisa cuando un usuario cambia texto en un componente TextComponent, TextArea o TextField.
 +
 
 +
* InputMethodEvent: Avisa que un texto que está siendo creado utilizando un método de entrada está cambiando (se ha escrito algo más...).
 +
 
 +
* InvocationEvent: Este evento ejecuta el método run() en una clase Runnable cuando es tratado por el thread del despachador (dispatcher) de AWT.
  
 
== Véase también ==
 
== Véase también ==
Línea 51: Línea 224:
  
 
== Fuentes ==
 
== Fuentes ==
* Zukowski, John (1997). Java AWT Reference. Editorial O'Reilly & Associates, Inc. Disponible en: [http://oreilly.com/catalog/javawt/book/index.html].
+
* Zukowski, John (1997). Java AWT Reference. Editorial O'Reilly & Associates, Inc. Disponible en: [http://oreilly.com/catalog/javawt/book/index.html http://Oreilly.com].
 +
* [http://zarza.usal.es/~fgarcia/doc/tuto2/IV_2.htm http://zarza.usal.es]
  
 
== Enlaces externos ==
 
== Enlaces externos ==
 
* [http://java.sun.com/javase/6/docs/guide/awt/index.html Página de AWT]
 
* [http://java.sun.com/javase/6/docs/guide/awt/index.html Página de AWT]
[[Category:Lenguajes_de_programación_orientada_a_objetos]][[Category:Herramientas_de_programación]][[Category:Informática]]
+
[[Categoría:Herramientas_de_programación]][[Categoría:Informática]]
 +
[[Categoría:Lenguajes_de_programación_orientada_a_objetos]]

última versión al 23:55 15 ago 2019

AWT (Abstract Window Toolkit)
Información sobre la plantilla
Parte de la familia Java
AWT ejemplo.jpg
Ejemplo de algunos de los componentes gráficos de AWT
CreadorSun Microsystems
Fecha de Creación1991
Sitio web
Java en Español

Abstract Window Toolkit. (AWT, en español Kit de Herramientas de Ventana Abstracta). Conjunto de herramientas GUI (Interfaz Gráfica con el Usuario) diseñadas para trabajar con múltiples plataformas. Interfaz de usuario, y sistema de ventanas independiente de la plataforma original de Lenguaje de programación Java. AWT es parte de las Java Foundation Classes (JFC) - la API estándar para suministrar una interfaz gráfica de usuario (GUI) para un programa Java.

Paquetes gráficos de las JFC

Las JFC (Java Foundation Classes) son parte de la API de Java compuesto por clases que sirven para crear interfaces gráficas visuales para las aplicaciones y applets de Java.

Así como Sun presenta estas JFC, Microsoft ha desarrollado otro paquete propio con el nombre de AFD (Application Foundation Classes).

Las JFC contienen dos paquetes gráficos: AWT y Swing.

  • AWT: Presenta componentes pesados, que en cada plataforma sólo pueden tener una representación determinada. Está disponible desde la versión 1.1 del JDK como java.awt.
  • Swing: Presenta componentes ligeros, que pueden tomar diferente aspecto y comportamiento pues lo toman de una biblioteca de clases. Está disponible desde la versión 1.2 del JDK como javax.swing aunque antes se podían encontrar versiones previas como com.sun.java. o como java.awt.swing.

Clases de AWT

Jerarquía de clases de AWT

Este paquete viene incluido en la API de Java como java.awt ya desde su primera versión, con lo que las interfaces generadas con esta biblioteca funcionan en todos los entornos Java disponibles (incluyendo navegadores, lo que les hace especialmente eficientes para la creación de applets Java).

  • Component: Esta clase representa a cualquier objeto que puede ser parte de una interfaz gráfica de usuario. Es la clase padre de muchas de las clases del AWT.

Su propósito principal es representar algo que tiene una posición y un tamaño, que puede ser dibujado en la pantalla y que pueda recibir eventos de entrada (que responda a las interacciones con el usuario).

  • Container: La clase Container sabe cómo mostrar componentes embebidos (que a su vez pueden ser instancias de la clase Container).

Estos objetos Container tienen un LayoutManager asociado que define la manera en que van a posicionarse los objetos componentes en su interior.

  • LayoutManager y LayoutManager2: son dos interfaces encargadas de la representación y posicionamiento en pantalla de componentes AWT.
  • Otras clases: Por supuesto AWT no se limita a estas clases. Dentro de esta biblioteca podemos encontrar multitud de clases prefabricadas para facilitar el diseño gráfico.

Clase Component

Su propósito principal es representar algo que tiene una posición y un tamaño, que puede ser dibujado en la pantalla y que pueda recibir eventos de entrada (que responda a las interacciones con el usuario).

La clase Component presenta diversos métodos, organizados para cubrir varios propósitos.

A continuación se explican algunos de ellos.

Tamaño y posición del componente

  • Dimension getSize(); Devuelve la anchura y altura del componente como un objeto de la clase Dimension, que tiene como campos: width (anchura) y heigth (altura).
  • void setSize(int ancho, int largo); Establece la anchura y altura del componente.
  • Dimension getPreferredSize(); Devuelve el tamaño que este componente debería tener.
  • void setPreferredSize(); Establece el tamaño que este componente debería tener.
  • Dimension getMinimumSize(); Devuelve el tamaño mínimo que este componente debería tener.
  • void setMinimumSize(int ancho, int largo); Establece el tamaño mínimo que este componente debería tener.
  • Rectangle getBounds(); Devuelve las coordenadas de este componente como un objeto de la clase Rectangle, que tiene como campos: x, y, width y heigth.
  • void setBounds(int x, int y, int ancho, int largo); Establece las coordenadas de este componente.

Acciones sobre el componente

  • boolean getEnabled(); Comprueba si el componente está o no activo.
  • void setEnabled(boolean); Establece el componente a activo o inactivo.
  • boolean getVisible(); Comprueba si el componente está o no visible.
  • void setVisible(boolean); Establece si el componente está visible o invisible.
  • void paint(Graphics g); Indica al AWT que ha de dibujar el componente g.
  • void repaint(); Indica al AWT que ha de volver a dibujar el componente.
  • void update(Graphics g); Es llamado por AWT cuando se invoca el método repaint(). Por defecto llama a paint().

Eventos de interacción con el usuario

A su vez hay tres tipos de métodos, para la gestión de eventos mediante el nuevo modelo de eventos de AWT (desde la versión 1.1).

Hay tres tipos de métodos:

  • void add_Tipo_Listener(_Tipo_Listener l); Añade un oyente a la espera de algún tipo de eventos sobre este componente.
  • void remove_Tipo_Listener(_Tipo_Listener l); Elimina algún oyente que estaba a la espera de algún tipo de eventos sobre este componente.
  • void process_Tipo_Event(_Tipo_Event e); Procesa eventos del tipo _Tipo_Event enviándolos a cualquier objeto _Tipo_Listener que estuviera escuchando.

En estos métodos _Tipo_ puede ser cualquiera de los siguientes:

Component, Focus, InputMethod, Key, Mouse, MouseMotion.

Clase Container

La clase Container sabe cómo mostrar componentes embebidos (que a su vez pueden ser instancias de la clase Container).

Algunos de los métodos de la clase Container son:

  • Component add(Component c); Añade un componente al contenedor.
  • void print(Graphics g); Imprime el contenedor.
  • void printComponents(Graphics g); Imprime cada uno de los componentes de este contenedor.
  • LayoutManager getLayout(); Devuelve el gestor de impresión (LayoutManager) asociado a este contenedor, que es el responsable de colocar los componentes dentro del contenedor.
  • void setLayout(LayoutManager 1); Establece un gestor de impresión para este componente.

Estos objetos Container tienen un LayoutManager asociado que define la manera en que van a posicionarse los objetos componentes en su interior.

Gestores de impresión

LayoutManager y LayoutManager2 son dos interfaces encargadas de la representación y posicionamiento en pantalla de componentes AWT.

De estas interfaces se proporcionan cinco implementaciones en AWT. Cada una de ellas reparte los objetos de una forma particular:

  • BorderLayout: En cinco lugares: Norte, Sur, Este, Oeste y Centro (North, South, East, West y Center).
  • CardLayout: Permite gestionar varios componentes de los que sólo uno se visualiza a la vez, permaneciendo los demás invisibles debajo.
  • FlowLayout: De izquierda a derecha horizontalmente en cada línea. Cuando sobrepasan una línea se comienza a la izquierda de la siguiente.
  • GridLayout: Es una tabla en la que todas las casillas tienen el mismo tamaño.
  • GridBagLayout: Es una tabla, pero las casillas no tienen que tener el mismo tamaño.

Otras clases

Dentro de esta biblioteca podemos encontrar multitud de clases prefabricadas para facilitar el diseño gráfico.

A continuación explicamos algunas de ellas.

Clases contenedoras (hijas de Container)

  • Panel: Permite hacer una presentación más avanzada que Container mediante la combinación con subpaneles o subclases para crear contenedores personalizados. La clase Applet que sirve para crear applets Java, hereda de esta clase Panel.
  • ScrollPane: Una barra de desplazamiento, horizontal o vertical.
  • Window: Una ventana sin borde.
  • Frame: Una ventana que no tiene borde. Puede tener asociado un objeto Menubar (una barra de herramientas o barra de menú personalizada).
  • Dialog: Una ventana usada para crear diálogos. Tiene la capacidad de ser modal con lo que sólo este contenedor recibiría entradas del usuario.
  • Filedialog: Un diálogo que usa el selector de archivos nativo del sistema operativo.

Clases componentes (hijas directas de Component)

  • Button: Un botón gráfico para el que se puede definir una acción que sucederá cuando se presione el botón.
  • Canvas: Permite pintar o capturar eventos del usuario. Se puede usar para crear gráficos o como clase base para crear una jerarquía de componentes personalizados.
  • Checkbox: Soporta dos estados: on y off. Se pueden asociar acciones que se ejecuten (triggers) cuando el estado cambie.
  • Choice: Menú desplegable de opciones.
  • Label: Cadena de etiqueta en una localización dada.
  • List: Una lista desplegable de cadenas.
  • Scrollbar: Desplegable de objetos Canvas.
  • TextComponent: Cualquier componente que permita editar cadenas de texto.Tiene dos clases hijas:
  • TextField: Componente de texto consistente en una línea que puede ser usada para construir formularios.
  • TextArea: Componente para edición de texto de tamaño variable.

Eventos de AWT

AWT tiene sus propios eventos, que se explican a continuación.

Eventos físicos

Son todos hijos del evento ComponentEvent, que indica algún cambio en un objeto Component:

  • InputEvent: Se ha producido una entrada del usuario. Tiene como eventos hijos KeyEvent (pulsación de una tecla) y MouseEvent (acción sobre el ratón).
  • FocusEvent: Avisa al programa de que el componente ha ganado o perdido la atención (enfoque) del usuario. Esto se deduce de la actividad del usuario (ratón y teclado).
  • WindowEvent: Avisa al programa de que el usuario ha utilizado uno de los controles de ventana a nivel del sistema operativo, como los controles de minimizar o cerrar.
  • ContainerEvent: Se envía cuando se añaden o eliminan componentes a un contenedor.
  • PaintEvent: Evento especial que señala que el sistema operativo quiere dibujar de nuevo una parte de la interfaz. Un componente debe sobreescribir el método paint() o el método update() para gestionar este evento.

Eventos semánticos

Son todos hijos del evento AWTEvent, que es el evento base de la jerarquía de eventos:

  • ActionEvent: Avisa al programa de acciones específicas de componentes como las pulsaciones de botones.
  • AdjustmenteEvent: Comunica que una barra de desplazamiento ha sido ajustada.
  • ItemEvent: Avisa al programa cuando el usuario interacciona con una elección, una lista o una casilla de verificación.
  • TextEvent: Avisa cuando un usuario cambia texto en un componente TextComponent, TextArea o TextField.
  • InputMethodEvent: Avisa que un texto que está siendo creado utilizando un método de entrada está cambiando (se ha escrito algo más...).
  • InvocationEvent: Este evento ejecuta el método run() en una clase Runnable cuando es tratado por el thread del despachador (dispatcher) de AWT.

Véase también

Fuentes

Enlaces externos