Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Aplicaciones basadas en
entorno gráfico
ÍNDICE
6 6.1 6.2 6.3 6.4
Introducción a AWT
Dentro de la plataforma estándar J2SE podemos encontrar un paquete Java (AWT. Abstract Window Toolkit) que comprende un conjunto
de clases para el desarrollo de aplicaciones con interfaz gráfica de usuario, denominado java.awt,
De manera resumida la jerarquía de clases de este paquete es:
Component
Panel Window
Botones (Button)
Áreas de texto
(TextArea)
Listas desplegables
(Choice)
Paneles ( Panel)
Diálogos (Dialog)
Paquetes para la construcción de interfaces gráficas: AWT y swing
Component es la superclase de todos los componentes visuales en Java e incluye métodos que
son comunes a todos ellos como el tratamiento de eventos, manejo de imágenes, colores, texto,
etc.
Vemos que hay dos subjerarquías de clases que heredan de Component: Container y el resto.
Esto nos indica que hay dos tipos diferentes de componentes visuales: los componentes básicos,
que heredan directamente de Component y los contenedores, que heredan de Container.
Mientras que los contenedores son elementos visuales que pueden contener otros componentes
(incluidos otros contenedores), los elementos básicos deben estar contenidos dentro de
contenedores.
Los paneles, diálogos o frames son ejemplos de contenedores y pueden contener otros
contenedores (un diálogo puede contener a un panel) o a otros elementos básicos como botones
o áreas de texto.
Paquetes para la construcción de interfaces gráficas: AWT y swing
Ejemplo
Implementación
de Interfaces gráficas
Cuando queremos implementar una aplicación con interfaz gráfica de usuario con AWT, es necesario
definir la ventana principal, que suele ser un objeto de la clase Frame.
Los frames son objetos visuales contenedores, que permiten situar dentro de ellos todos los
componentes necesarios para ofrecer al usuario de la aplicación la información y funcionalidad
requerida.
La clase a la que pertenecen los frames hereda de la clase Window, por lo que se presentan en
pantalla con el aspecto de una ventana, dividida en dos partes:
Cuando hemos decidido el tipo de contenedor que vamos a utilizar para el diseño de la vista
principal de una aplicación existen dos alternativas para implementar la aplicación:
Para aplicaciones con una única ventana. Se implementa una clase que hereda del
1
contendor elegido como vista principal. Esta es la opción que elegimos en el ejemplo
anterior de la aplicación “Divisores y Múltiplos”. Ejemplo:
Para aplicaciones que contienen múltiples ventanas. Creamos una clase que contenga
2 a esas ventanas como atributos de la misma. Vamos a ver un ejemplo de un fragmento
de código de una clase con tres frames:
import java.awt.*;
public class EjemploMultiplesVentanas {
private Frame ventana1, ventana 2, ventana3;
Paquetes para la construcción de interfaces gráficas: AWT y swing
Invocar los métodos encargados de configurar los aspectos generales del contene dor
Por ejemplo setSize, que establece el tamaño del contenedor mediante dos
parámetros de tipo entero que determinan, respectivamente, la anchura y altura
medidos en píxeles. La signatura sería:
public void setSize (int width, int height);
Paquetes para la construcción de interfaces gráficas: AWT y swing
Para ello utilizamos, el método setVisible dentro de main, que muestra u oculta el
contenedor en función de si se recibe como parámetro el valor booleano true o
false respectivamente. La signatura sería:
public void setVisible (boolean b);
Componentes básicos
de AWT
BOTONES
Vamos a ver un ejemplo de un código que muestra la clase Tablas con la declaración y creación
de dos objetos de la clase Button con las etiquetas “Calcular” y “Borrar Pantalla”.
import java.awt.*;
public DivisoresMultiplos () {
L I STA S D E S P L E G A B L E S
Otros métodos importantes para el
manejo de listas desplegables son:
Son objetos que pertenecen a la clase Choice. Las listas
desplegables permiten presentar una serie de opciones.
De todas estas opciones que la lista desplegable permite Para insertar un nuevo elemento en la
seleccionar, sólo una es visible, y esta se corresponde con lista desplegable:
la elección por omisión que es la que se usa normalmente. public void addItem (String item);
Vamos a ver un código que muestra la clase DivisoresMultiplos donde se ha añadido la lista
desplegable incluida en la interfaz de usuario de la aplicación “Divisores y Múltiplos”.
import java.awt.*;
public class DivisoresMultiplos extends Frame {
public DivisoresMultiplos () {
super ("Divisores y Múltiplos");
Button botonCalcular = new Button ("Calcular");
Button botonBorrar = new Button ("Borrar");
Choice listaOperacion = new Choice () ;
listaOperacion.add ("Divisores");
listaOperacion.add ("Multiplos");
setSize (new Dimension (400,400));
…
// Añadir los botones y la lista desplegable al frame
}
}
Creación de ventanas y componentes
La aplicación de nuestro
ejemplo presenta una lista
desplegable para poder elegir
cuál de las dos operaciones se
desea llevar a cabo.
Creación de ventanas y componentes
La clase Label tiene tres constructores que se emplean de
forma habitual:
E T I Q U E TA S
• Para crear una etiqueta vacía justificada a la izquierda.
public void Label ();
En AWT las etiquetas se representan por la clase • Para crear una etiqueta con el texto pasado como parámetro.
Label. public void Label (String t);
Las etiquetas son uno de los componentes más • Para crear una etiqueta con el texto indicado por el parámetro t
y justificada según el parámetro al, especificado mediante las
simples. Se utilizan para mostrar una línea de
constantes LEFT (izquierda), RIGHT (derecha) o CENTER
texto en un contenedor, normalmente (centrado) de la clase Label.
aclaratorio. public void Lablel (String t, int al);.
CAMPOS DE TEXTO
import java.awt.*;
Ejemplo
public class Formulario extends Frame {
}
Creación de ventanas y componentes
ÁREAS DE TEXTO
public TextArea();
areaTexto.setText(“”)
Para añadir el texto enviado como parámetro al contenido actual del área de texto:
public DivisoresMultiplos () {
El código completo para
super ("Divisores y Múltiplos");
configurar todos los
Button botonCalcular = new Button ("Calcular");
componentes de nuestro
ejemplo es el siguiente Button botonBorrar = new Button ("Borrar");
listaOperacion.add ("Divisores");
listaOperacion.add ("Multiplos");
}
6.3 Gestión de
eventos
C O M E N Z A R
Gestión de eventos
2 Los eventos en Java son objetos que pertenecen a alguna subclase de AWTEvent.
Se general por los componentes visuales.
Interfaz ActionListener para los eventos relacionados con el botón izquierdo del ratón.
Interfaz WindowListener para los eventos sobre las ventanas (maximizar, minimizar…)
Interfaz FocusListener para los eventos relacionados con el foco (el componente
activo en un momento dado).
Para implementar una interfaz gráfica con tratamiento de eventos la clase donde se sitúan
todos los componentes visuales y que, a su vez, hereda del contenedor, debe heredar de
todas aquellas interfaces relacionadas con los eventos que se desean tratar.
Gestión de eventos
2 Los eventos en Java son objetos que pertenecen a alguna subclase de AWTEvent.
Registramos el objeto que contiene los componentes visuales (listener) en aquellos
componentes visuales sobre los que queremos atender los eventos que les ocurran.
https://drive.google.com/file/d/1725YKeWujG4TQyTmRHHWEZDOA9PiGMoG/preview
6.4 Applets
C O M E N Z A R
Applets
1 4
Para ello los navegadores
Los applets Java son ofrecían soporte y actuaban Esto se ha debido al fin del soporte NPAPI
componentes software 2 como contenedores de (Netscape Plugin Application Programming
que se incrustan en applets, lo que se conoce Interface) por parte de los navegadores
documentos HTML como soporte NPAPI. modernos y, una de las principales causas
(páginas WEB) que de que esto haya ocurrido así, han sido los
contienen funcionalidades graves problemas de seguridad que
Los applets han venido
para ejecutar clases Java generaba la implementación de applets en
cayendo en desuso por
del lado de servidor pero páginas web así como los cambios de
3 diferentes circunstancias, hasta
en la parte cliente, en el paradigma y la propia evolución del
el punto de ir poco a poco
navegador web en este desarrollo web. Causas estas que han
desapareciendo en las últimas
caso. llevado, tal y como se ha indicado
versiones de Java.
anteriormente, a la práctica desaparición
de estos componentes del panorama del
desarrollo de software actual.
hemos
terminado
¡EXCELENTE TRABAJO!