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áficos, interfaz 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.
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.
Describa lo principales componentes de AWT
1. clase pública TextField
extiende TextComponent
Un
Aquí está el código que produce estos cuatro campos de texto:
TextField
objeto 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"
.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
TextArea
objeto 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:
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
Label
objeto 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:
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
Quit
botón " " como aparece en el sistema operativo Solaris:
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 processMouseEvent
o puede registrarse como oyente para eventos del mouse llamando addMouseListener
. Ambos métodos están definidos por Component
la superclase abstracta de todos los componentes.
Cuando se presiona y suelta un botón, AWT envía una instancia
ActionEvent
al botón, llamando processEvent
al botón. El processEvent
mé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 processActionEvent
mé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
ActionListener
y registrar al nuevo oyente para recibir eventos de este botón, llamando al addActionListener
mé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" (
Esta imagen muestra las casillas de verificación y el diseño de cuadrícula creado por este ejemplo de código:
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 botón etiquetado
one
está en el estado "encendido", y los otros dos están en el estado "apagado". En este ejemplo, que utiliza la GridLayout
clase, 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
CheckboxGroup
clase. 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
Cada barra de desplazamiento en este ejemplo podría crearse con un código similar al siguiente:
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:
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:
Tenga en cuenta que el valor máximo real de la barra de desplazamiento es el
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
Cualquier objeto que desee ser notificado de cambios en el valor de la barra de desplazamiento debe implementar
La
Scrollbar
clase 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: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:
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
maximum
menos el visible amount
. En el ejemplo anterior, debido a que maximum
es 300 y visible amount
60, 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
AdjustmentEvent
. La 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.event
. Los oyentes se pueden agregar y eliminar dinámicamente llamando a los métodos addAdjustmentListener
y removeAdjustmentListener
.La
AdjustmentEvent
clase 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_INCREMENT
se 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_DECREMENT
se 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 .
AdjustmentEvent.TRACK
reemplazaEvent.SCROLL_ABSOLUTE
AdjustmentEvent.UNIT_INCREMENT
reemplazaEvent.SCROLL_LINE_UP
AdjustmentEvent.UNIT_DECREMENT
reemplazaEvent.SCROLL_LINE_DOWN
AdjustmentEvent.BLOCK_INCREMENT
reemplazaEvent.SCROLL_PAGE_UP
AdjustmentEvent.BLOCK_DECREMENT
reemplazaEvent.SCROLL_PAGE_DOWN
Scrollbar
solo para la selección de valor. Si desea implementar un componente desplazable dentro de un contenedor, le recomendamos que utilice un archivo ScrollPane
. Si usa una Scrollbar
para 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
Después de agregar este menú de selección a un panel, aparece como sigue en su estado normal:
En la imagen,
Algunas plataformas nativas no admiten el cambio de tamaño arbitrario de los
Choice
clase 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:
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
Choice
componentes y el comportamiento de setSize()/getSize()
está limitado por tales limitaciones. Choice
El 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
where
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
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
Beginning with Java 1.1, the Abstract Window Toolkit sends the
When an item is selected or deselected by the user, AWT sends an instance of
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
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.
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: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 ActionEvent
to 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
Canvas
componente 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 Canvas
clase para obtener una funcionalidad útil, como crear un componente personalizado. El paint
método debe anularse para realizar gráficos personalizados en el lienzo.10. Clase pública Marco
amplía la ventana
implementa MenuContainer
A
El diseño predeterminado para un marco es
Un marco puede tener sus decoraciones nativas (es decir,
En un entorno de múltiples pantallas, puede crear un
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.
En dicho entorno, al llamar
El siguiente código establece la ubicación de
Frame
es una ventana de nivel superior con un título y un borde.El tamaño del marco incluye cualquier área designada para el borde. getInsets
Sin 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 pack
o show
. Dado 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 setUndecorated
. Esto 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)
o Frame(String title, GraphicsConfiguration)
. El GraphicsConfiguration
objeto es uno de los GraphicsConfiguration
objetos 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.
En dicho entorno, al llamar
setLocation
, debe pasar una coordenada virtual a este método. Del mismo modo, llamar getLocationOnScreen
a un Frame
dispositivo virtual devuelve las coordenadas. Llame al getBounds
método de a GraphicsConfiguration
para encontrar su origen en el sistema de coordenadas virtual.El siguiente código establece la ubicación de
Frame
at (10, 10) en relación con el origen de la pantalla física de la correspondiente GraphicsConfiguration
. Si GraphicsConfiguration
no se tienen en cuenta los límites de la , la Frame
ubicació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 WindowEvent
s: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.
Un diálogo puede tener sus decoraciones nativas (es decir, Marco y Barra de título) desactivadas con
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
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
getInsets
Sin 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 pack
o show
. Como 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
setUndecorated
. Esto 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 Frame
para 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
WindowEvents
: WindowOpened
, WindowClosing
, WindowClosed
, WindowActivated
, WindowDeactivated
, WindowGainedFocus
, WindowLostFocu.
12. clase pública FileDialog
extiende el diálogo
La
FileDialog
clase 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 show
mé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
Panel
Es 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 FlowLayout
administrador de diseño.
Comentarios
Publicar un comentario