Diferencia entre revisiones de «AWT»

Línea 1: Línea 1:
 +
{{Desarrollo}}
 
{{Ficha Software
 
{{Ficha Software
 
|nombre= AWT (Abstract Window Toolkit)
 
|nombre= AWT (Abstract Window Toolkit)
Línea 4: Línea 5:
 
|imagen= AWT_ejemplo.jpg
 
|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 26:
 
|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). 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.
+
}}'''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.
  
 
== Paquetes gráficos de las JFC ==
 
== Paquetes gráficos de las JFC ==
Línea 35: Línea 36:
 
Las JFC contienen dos paquetes gráficos: AWT y [[Swing]].
 
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.
+
*'''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.
 
*'''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.
Línea 50: Línea 51:
 
Estos objetos Container tienen un LayoutManager asociado que define la manera en que van a posicionarse los objetos componentes en su interior.
 
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.
+
*'''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.
+
*'''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.
  
== Multiplataforma ==  
+
== Clase Component ==  
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
+
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).
que sus aplicaciones se vean exactamente igual en todas las plataformas.  
+
 
 +
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.
  
== Biblioteca de componentes  ==
+
* 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.
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.
+
* void process_Tipo_Event(_Tipo_Event e); Procesa eventos del tipo _Tipo_Event enviándolos a cualquier objeto _Tipo_Listener que estuviera escuchando.
* 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 ==
+
En estos métodos _Tipo_ puede ser cualquiera de los siguientes:
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 ==
+
Component, Focus, InputMethod, Key, Mouse, MouseMotion.
  
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]].
 
  
 
== Véase también ==
 
== Véase también ==

Revisión del 16:47 11 abr 2011

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

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.


Véase también

Fuentes

Enlaces externos