AWT

¿Qué es Java AWT?
La Abstract Window Toolkit (AWT, en español Kit de Herramientas de Ventana Abstracta) es un kit de herramientas de gráficosinterfaz de usuario, y sistema de ventanas independiente de la plataforma original de Java. AWT es ahora parte de las Java Foundation Classes (JFC) - la API estándar para suministrar una interfaz gráfica de usuario (GUI) para un programa Java.




¿Qué es Java Swing?

Swing es una biblioteca gráfica para Java. Incluye widgets para interfaz gráfica de usuario tales como cajas de texto, botones, listas desplegables y tablas.
Gui-widgets.png







Ventajas y Desventajas de AWT y Swing

VENTAJAS DESVENTAJAS Velocidad, el usar el sistema nativo como base hace que el desempeño de los componente sea más rápido. Portabilidad. El uso del sistema en el que se ejecutan los componentes AWT crea algunas limitaciones. Algunos componentes pueden no funcionar en todas las plataformas. Portabilidad de applets, casi todos los navegadores soportan las clases de AWT así que applets construidos con AWT puede ejecutarse sin necesidad del plugin de java. Los grandes creadores de componentes se han inclinado por el desarrollo de componentes Swing y no AWT, esto hace que el conjunto de componentes AWT más pequeño. Apariencia: los componentes AWT se parecen más al sistema en el que se están ejecutando. Características. Los componentes AWT no soportan características como iconos y tool-tips. VENTAJAS Y DESVENTAJAS DE SWING VENTAJAS DESVENTAJAS Portabilidad. Debido a que los componentes de swing están hechos solo con java, estos funcionan en casi todos las plataformas. Portabilidad de Applets. La mayoría de los navegadores no incluyen las clases de Swing ANSI que se debe de instalar un plugin de java; para que funcionen los applets con swing. Comportamiento. Permiten un rango de comportamiento más amplio ya que no están limitados a los sistemas en los que se ejecutan. Desempeño. Los componentes Swing son generalmente más lentos y con más problemas que AWT. Características. Soporta el uso de iconos y de tool-tips. Soporte. Sun hace un gran esfuerzo para hacer Swing más robusto. Apariencia. Los componentes de swing automáticamente pueden tomar la apariencia de cualquier plataforma.
Image of page 13



 Describa lo principales componentes de AWT

1. clase pública TextField 
extiende TextComponent
Un TextFieldobjeto es un componente de texto que permite la edición de una sola línea de texto.Por ejemplo, la siguiente imagen muestra un marco con cuatro campos de texto de diferentes anchos. Dos de estos campos de texto muestran el texto predefinido "Hello".


El texto anterior describe esta imagen.

Aquí está el código que produce estos cuatro campos de texto:

TextField tf1, tf2, tf3, tf4;
 // un campo de texto en blanco
 tf1 = nuevo TextField ();
 // campo en blanco de 20 columnas
 tf2 = nuevo TextField ("", 20);
 // texto predefinido mostrado
 tf3 = new TextField ("Hello!");
 // texto predefinido en 30 columnas
 tf4 = nuevo TextField ("Hello", 30);



2. clase pública TextArea 
extiende TextComponent
Un TextAreaobjeto es una región multilínea que muestra texto. Puede configurarse para permitir la edición o para ser de solo lectura.La siguiente imagen muestra la apariencia de un área de texto:

Una TextArea que muestra la palabra "¡Hola!"

Esta área de texto podría ser creada por la siguiente línea de código:

 nuevo TextArea ("Hola", 5, 40);





3. Etiqueta de clase pública 
amplía 
Implementos de componentes Accesible
Un Labelobjeto es un componente para colocar texto en un contenedor. Una etiqueta muestra una sola línea de texto de solo lectura. El texto puede ser cambiado por la aplicación, pero un usuario no puede editarlo directamente.
Por ejemplo, el código. .

 setLayout (nuevo FlowLayout (FlowLayout.CENTER, 10, 10));
 agregar (nueva etiqueta ("Hola!"));
 agregar (nueva etiqueta ("Otra etiqueta"));
 

produce las siguientes etiquetas:


Dos etiquetas: '¡Hola!'  y 'Otra etiqueta'








4. Botón de clase pública 
amplía 
Implementos de componentes Accesible
Esta clase crea un botón etiquetado. La aplicación puede hacer que ocurra alguna acción cuando se presiona el botón. Esta imagen muestra tres vistas de un Quitbotón " como aparece en el sistema operativo Solaris:

El siguiente contexto describe el gráfico.
La primera vista muestra el botón como aparece normalmente. La segunda vista muestra el botón cuando tiene foco de entrada. Su contorno se oscurece para que el usuario sepa que es un objeto activo. La tercera vista muestra el botón cuando el usuario hace clic con el mouse sobre el botón y, por lo tanto, solicita que se realice una acción.
El gesto de hacer clic en un botón con el mouse está asociado con una instancia de ActionEvent, que se envía cuando el mouse se presiona y se suelta sobre el botón. Si una aplicación está interesada en saber cuándo se presionó el botón pero no se soltó, como un gesto separado, puede especializarse processMouseEvento puede registrarse como oyente para eventos del mouse llamando addMouseListenerAmbos métodos están definidos por Componentla superclase abstracta de todos los componentes.
Cuando se presiona y suelta un botón, AWT envía una instancia ActionEvental botón, llamando processEvental botón. El processEventmétodo del botón recibe todos los eventos para el botón; pasa un evento de acción a lo largo de llamar a su propio processActionEventmétodo. El último método pasa el evento de acción a cualquier oyente de acción que haya registrado un interés en los eventos de acción generados por este botón.
Si una aplicación desea realizar alguna acción en función de un botón que se presiona y libera, debe implementar ActionListenery registrar al nuevo oyente para recibir eventos de este botón, llamando al addActionListenermétodo del botón La aplicación puede hacer uso del comando de acción del botón como un protocolo de mensajería.




5. clase pública Checkbox 
amplía Component 
implementa ItemSelectable , Accessible
Una casilla de verificación es un componente gráfico que puede estar en un estado "encendido" ( true) o "apagado" ( false). Al hacer clic en una casilla de verificación cambia su estado de "encendido" a "apagado", o de "apagado" a "encendido".El siguiente ejemplo de código crea un conjunto de casillas de verificación en un diseño de cuadrícula:


 setLayout (nuevo GridLayout (3, 1));
 agregar (nueva casilla de verificación ("uno", nulo, verdadero));
 agregar (nueva casilla de verificación ("dos"));
 agregar (nueva casilla de verificación ("tres"));
 

Esta imagen muestra las casillas de verificación y el diseño de cuadrícula creado por este ejemplo de código:

El siguiente contexto describe el gráfico.

El botón etiquetado oneestá en el estado "encendido", y los otros dos están en el estado "apagado". En este ejemplo, que utiliza la GridLayoutclase, los estados de las tres casillas de verificación se establecen de forma independiente.
Alternativamente, varias casillas de verificación pueden agruparse bajo el control de un solo objeto, usando la CheckboxGroupclase. En un grupo de casillas de verificación, como máximo, un botón puede estar en el estado "activado" en un momento dado. Al hacer clic en una casilla de verificación para activarla, se fuerza cualquier otra casilla de verificación en el mismo grupo que se encuentra en el estado "apagado".


Todas las interfaces implementadas:
Ajustable , ImageObserver , MenuContainer , Serializable , Accesible


6. la clase pública Barra de desplazamiento 
amplía los 
implementos de componentes Ajustable , Accesible
La Scrollbarclase incorpora una barra de desplazamiento, un objeto familiar de interfaz de usuario. Una barra de desplazamiento proporciona un medio conveniente para permitir que un usuario seleccione entre un rango de valores. Las siguientes tres barras de desplazamiento vertical podrían usarse como controles deslizantes para elegir los componentes rojo, verde y azul de un color:La imagen muestra 3 deslizadores verticales, lado a lado.
Cada barra de desplazamiento en este ejemplo podría crearse con un código similar al siguiente:


 redSlider = new Scrollbar (Scrollbar.VERTICAL, 0, 1, 0, 255);
 añadir (redSlider);
 

Alternativamente, una barra de desplazamiento puede representar un rango de valores. Por ejemplo, si se utiliza una barra de desplazamiento para desplazarse por el texto, el ancho de la "burbuja" (también llamada "pulgar" o "cuadro de desplazamiento") se puede usar para representar la cantidad de texto que es visible. Aquí hay un ejemplo de una barra de desplazamiento que representa un rango:
La imagen muestra el control deslizante horizontal con un rango inicial de 0 y un rango final de 300. El control deslizante está etiquetado como 60.
El rango de valores representado por la burbuja en este ejemplo es la cantidad visible . La barra de desplazamiento horizontal en este ejemplo podría crearse con un código como el siguiente:


 ranger = new Scrollbar (Scrollbar.HORIZONTAL, 0, 60, 0, 300);
 añadir (guardabosques);
 

Tenga en cuenta que el valor máximo real de la barra de desplazamiento es el maximummenos el visible amountEn el ejemplo anterior, debido a que maximumes 300 y visible amount60, el valor máximo real es 240. El rango de la barra de desplazamiento es de 0 a 300. El lado izquierdo de la burbuja indica el valor de la barra de desplazamiento.
Normalmente, el usuario cambia el valor de la barra de desplazamiento haciendo un gesto con el mouse. Por ejemplo, el usuario puede arrastrar la burbuja de la barra de desplazamiento hacia arriba y hacia abajo, o hacer clic en las áreas de incremento de la unidad de la barra de desplazamiento o incremento de bloque. Los gestos del teclado también se pueden asignar a la barra de desplazamiento. Por convención, las teclas Page Up y Page Down son equivalentes a hacer clic en el incremento de bloque de la barra de desplazamiento y a las áreas de disminución de bloque.
Cuando el usuario cambia el valor de la barra de desplazamiento, la barra de desplazamiento recibe una instancia de AdjustmentEventLa barra de desplazamiento procesa este evento y lo transmite a los oyentes registrados.
Cualquier objeto que desee ser notificado de cambios en el valor de la barra de desplazamiento debe implementar AdjustmentListener, una interfaz definida en el paquete java.awt.eventLos oyentes se pueden agregar y eliminar dinámicamente llamando a los métodos addAdjustmentListenerremoveAdjustmentListener.
La AdjustmentEventclase define cinco tipos de eventos de ajuste, enumerados aquí:

  • AdjustmentEvent.TRACK se envía cuando el usuario arrastra la burbuja de la barra de desplazamiento.
  • AdjustmentEvent.UNIT_INCREMENT se envía cuando el usuario hace clic en la flecha izquierda de una barra de desplazamiento horizontal, o en la flecha superior de una barra de desplazamiento vertical, o hace el gesto equivalente desde el teclado.
  • AdjustmentEvent.UNIT_DECREMENT se envía cuando el usuario hace clic en la flecha derecha de una barra de desplazamiento horizontal, o en la flecha inferior de una barra de desplazamiento vertical, o hace el gesto equivalente desde el teclado.
  • AdjustmentEvent.BLOCK_INCREMENTse envía cuando el usuario hace clic en la pista, a la izquierda de la burbuja en una barra de desplazamiento horizontal, o por encima de la burbuja en una barra de desplazamiento vertical. Por convención, la tecla Page Up es equivalente, si el usuario está utilizando un teclado que define una tecla Page Up .
  • AdjustmentEvent.BLOCK_DECREMENTse envía cuando el usuario hace clic en la pista, a la derecha de la burbuja en una barra de desplazamiento horizontal, o debajo de la burbuja en una barra de desplazamiento vertical. Por convención, la tecla Página abajo es equivalente, si el usuario está utilizando un teclado que define una tecla Página abajo .
El sistema de eventos JDK 1.0 es compatible con la compatibilidad con versiones anteriores, pero no se recomienda su uso con versiones más recientes de la plataforma. Los cinco tipos de eventos de ajuste introducidos con JDK 1.1 corresponden a los cinco tipos de eventos que están asociados con barras de desplazamiento en versiones anteriores de la plataforma. La siguiente lista proporciona el tipo de evento de ajuste y el tipo de evento JDK 1.0 que reemplaza.

  • AdjustmentEvent.TRACK reemplaza Event.SCROLL_ABSOLUTE
  • AdjustmentEvent.UNIT_INCREMENT reemplaza Event.SCROLL_LINE_UP
  • AdjustmentEvent.UNIT_DECREMENT reemplaza Event.SCROLL_LINE_DOWN
  • AdjustmentEvent.BLOCK_INCREMENT reemplaza Event.SCROLL_PAGE_UP
  • AdjustmentEvent.BLOCK_DECREMENT reemplaza Event.SCROLL_PAGE_DOWN
Nota : Recomendamos usar Scrollbar solo para la selección de valor. Si desea implementar un componente desplazable dentro de un contenedor, le recomendamos que utilice un archivo ScrollPaneSi usa una Scrollbarpara este propósito, es probable que encuentre problemas con la pintura, el manejo de las teclas, el tamaño y la posición.




7.Elección de clase pública 
extiende Component 
implementa ItemSelectable , Accessible
La Choiceclase presenta un menú emergente de opciones. La opción actual se muestra como el título del menú.El siguiente ejemplo de código produce un menú emergente:


 Choice ColorChooser = new Choice ();
 ColorChooser.add ("Verde");
 ColorChooser.add ("Red");
 ColorChooser.add ("Blue");
 

Después de agregar este menú de selección a un panel, aparece como sigue en su estado normal:
El siguiente texto describe el gráfico.
En la imagen, "Green"es la elección actual. Al presionar el botón del mouse sobre el objeto, aparece un menú con la opción actual resaltada.
Algunas plataformas nativas no admiten el cambio de tamaño arbitrario de los Choicecomponentes y el comportamiento de setSize()/getSize()está limitado por tales limitaciones. ChoiceEl tamaño de los componentes de la GUI nativa suele estar limitado por atributos como el tamaño de fuente y la longitud de los elementos contenidos en el Choice.




8.public class List
extends Component
implements ItemSelectable, Accessible

The List component presents the user with a scrolling list of text items. The list can be set up so that the user can choose either one item or multiple items.For example, the code . . .


 List lst = new List(4, false);
 lst.add("Mercury");
 lst.add("Venus");
 lst.add("Earth");
 lst.add("JavaSoft");
 lst.add("Mars");
 lst.add("Jupiter");
 lst.add("Saturn");
 lst.add("Uranus");
 lst.add("Neptune");
 lst.add("Pluto");
 cnt.add(lst);
 

where cnt is a container, produces the following scrolling list:
Shows a list containing: Venus, Earth, JavaSoft, and Mars. Javasoft is selected.
If the List allows multiple selections, then clicking on an item that is already selected deselects it. In the preceding example, only one item from the scrolling list can be selected at a time, since the second argument when creating the new scrolling list is false. If the List does not allow multiple selections, selecting an item causes any other selected item to be deselected.
Note that the list in the example shown was created with four visible rows. Once the list has been created, the number of visible rows cannot be changed. A default List is created with four rows, so that lst = new List() is equivalent to list = new List(4, false).
Beginning with Java 1.1, the Abstract Window Toolkit sends the List object all mouse, keyboard, and focus events that occur over it. (The old AWT event model is being maintained only for backwards compatibility, and its use is discouraged.)
When an item is selected or deselected by the user, AWT sends an instance of ItemEvent to the list. When the user double-clicks on an item in a scrolling list, AWT sends an instance of ActionEventto the list following the item event. AWT also generates an action event when the user presses the return key while an item in the list is selected.
If an application wants to perform some action based on an item in this list being selected or activated by the user, it should implement ItemListener or ActionListener as appropriate and register the new listener to receive events from this list.
For multiple-selection scrolling lists, it is considered a better user interface to use an external gesture (such as clicking on a button) to trigger the action.



9. Todas las interfaces implementadas:
ImageObserver , MenuContainer , serializable , accesible


Clase pública de lienzo se 
extiende 
implementos de componentes Accesible

Un Canvascomponente representa un área rectangular en blanco de la pantalla en la que la aplicación puede dibujar o desde la cual la aplicación puede atrapar eventos de entrada del usuario.Una aplicación debe subclasificar la Canvasclase para obtener una funcionalidad útil, como crear un componente personalizado. El paintmétodo debe anularse para realizar gráficos personalizados en el lienzo.





10. Clase pública Marco 
amplía la ventana 
implementa MenuContainer

Framees una ventana de nivel superior con un título y un borde.El tamaño del marco incluye cualquier área designada para el borde. getInsetsSin embargo, las dimensiones del área del borde se pueden obtener utilizando el método, ya que estas dimensiones dependen de la plataforma, no se puede obtener un valor de inserción válido hasta que el marco se pueda mostrar mediante una llamada packshowDado que el área del borde se incluye en el tamaño total del marco, el borde oculta de manera efectiva una parte del marco, restringiendo el área disponible para representar y / o mostrar los subcomponentes al rectángulo que tiene una ubicación en la esquina superior izquierda de (insets.left, insets.top), y tiene un tamaño de width - (insets.left + insets.right)por height - (insets.top + insets.bottom).
El diseño predeterminado para un marco es BorderLayout.
Un marco puede tener sus decoraciones nativas (es decir, Frame y Titlebar) desactivadas con setUndecoratedEsto solo puede hacerse mientras el marco no lo está displayable.
En un entorno de múltiples pantallas, puede crear un Frame dispositivo en una pantalla diferente construyendo Frame con Frame(GraphicsConfiguration)Frame(String title, GraphicsConfiguration)El GraphicsConfigurationobjeto es uno de los GraphicsConfigurationobjetos del dispositivo de pantalla de destino.
En un entorno de pantallas múltiples de dispositivos virtuales en el que el área del escritorio podría abarcar múltiples dispositivos de pantalla física, los límites de todas las configuraciones son relativos al sistema de coordenadas virtuales. El origen del sistema de coordenadas virtuales se encuentra en la esquina superior izquierda de la pantalla física principal. Dependiendo de la ubicación de la pantalla principal en el dispositivo virtual, las coordenadas negativas son posibles, como se muestra en la siguiente figura.
Diagrama de dispositivo virtual que abarca tres pantallas físicas y una pantalla física principal.  La pantalla física principal muestra (0,0) coords, mientras que una pantalla física diferente muestra (-80, -100) coords.
En dicho entorno, al llamar setLocation, debe pasar una coordenada virtual a este método. Del mismo modo, llamar getLocationOnScreena un Frame dispositivo virtual devuelve las coordenadas. Llame al getBounds método de a GraphicsConfigurationpara encontrar su origen en el sistema de coordenadas virtual.
El siguiente código establece la ubicación de Frameat (10, 10) en relación con el origen de la pantalla física de la correspondiente GraphicsConfigurationSi GraphicsConfigurationno se tienen en cuenta los límites de la , la Frameubicación se establecería en (10, 10) en relación con el sistema de coordenadas virtual y aparecería en la pantalla física principal, que podría ser diferente de la pantalla física de la especificada GraphicsConfiguration.
      Frame f = new Frame (GraphicsConfiguration gc);
      Límites de rectángulo = gc.getBounds ();
      f.setLocation (10 +mites.x, 10 + límites.y);
 
Los marcos son capaces de generar los siguientes tipos de WindowEvents:
  • WINDOW_OPENED
  • WINDOW_CLOSING
    Si el programa no oculta o elimina explícitamente la ventana mientras procesa este evento, se cancela la operación de cierre de la ventana.
  • WINDOW_CLOSED
  • WINDOW_ICONIFIED
  • WINDOW_DEICONIFIED
  • WINDOW_ACTIVATED
  • WINDOW_DEACTIVATED
  • WINDOW_GAINED_FOCUS
  • WINDOW_LOST_FOCUS
  • WINDOW_STATE_CHANGED




11. El diálogo público de la clase 
extiende la ventana

Un cuadro de diálogo es una ventana de nivel superior con un título y un borde que normalmente se utiliza para tomar algún tipo de información del usuario. El tamaño del diálogo incluye cualquier área designada para el borde. getInsetsSin embargo, las dimensiones del área del borde se pueden obtener utilizando el método, ya que estas dimensiones dependen de la plataforma, no se puede obtener un valor de inserción válido hasta que el cuadro de diálogo se muestre mediante una llamada packshowComo el área del borde se incluye en el tamaño total del cuadro de diálogo, el borde oculta de manera efectiva una parte del cuadro de diálogo, restringiendo el área disponible para representar y / o mostrar los subcomponentes al rectángulo que tiene una ubicación en la esquina superior izquierda de (insets.left, insets.top), y tiene un tamaño de width - (insets.left + insets.right)por height - (insets.top + insets.bottom).El diseño predeterminado para un diálogo es BorderLayout.
Un diálogo puede tener sus decoraciones nativas (es decir, Marco y Barra de título) desactivadas con setUndecoratedEsto solo puede hacerse mientras el diálogo no lo está displayable.
Un diálogo puede tener otra ventana como su propietario cuando se construye. Cuando la ventana de propietario de un diálogo visible se minimiza, el diálogo se ocultará automáticamente al usuario. Cuando la ventana del propietario se restaura posteriormente, el diálogo se vuelve visible para el usuario nuevamente.
En un entorno de pantalla múltiple, puede crear un Dialog dispositivo de pantalla diferente al de su propietario. Ver Framepara más información.
Un diálogo puede ser sin modelo (predeterminado) o modal. Un diálogo modal es aquel que bloquea la entrada a algunas otras ventanas de nivel superior en la aplicación, a excepción de las ventanas creadas con el diálogo como su propietario. Vea la especificación de la modalidad AWT para más detalles.
Los diálogos son capaces de generar la siguiente WindowEventsWindowOpenedWindowClosingWindowClosedWindowActivatedWindowDeactivatedWindowGainedFocusWindowLostFocu.



12. clase pública FileDialog 
extiende el diálogo

La FileDialogclase muestra una ventana de diálogo desde la cual el usuario puede seleccionar un archivo.Dado que es un diálogo modal, cuando la aplicación llama a su showmétodo para mostrar el diálogo, bloquea el resto de la aplicación hasta que el usuario haya elegido un archivo.



13. Clase pública Panel 
amplía Contenedor 
implementa Accesible

PanelEs la clase de contenedor más simple. Un panel proporciona espacio en el que una aplicación puede adjuntar cualquier otro componente, incluidos otros paneles.El administrador de diseño predeterminado para un panel es el FlowLayoutadministrador de diseño.












Comentarios

Entradas populares