Documentos de Académico
Documentos de Profesional
Documentos de Cultura
JA
Bauman / Dcima
Java Electrotecnia
JFC y Swing
Java
Qu es JFC y Swing?
JFC (Java Foundation Classes) significa Clases de Base de Java, y engloban un grupo de caractersticas
para la construccin de Interfaces Grficas de Usuario (o GUIs, Graphical User Interfaces) y para agregar
funcionalidad grfica e interactiva a aplicaciones de Java.
Se define como el conjunto de caractersticas descriptas en la siguiente tabla:
Caracterstica Descripcin
Componentes GUI Swing Incluye todo desde botones, paneles divisibles, a tablas.
Permite a cualquier programa que utilice los componentes Swing a elegir su
look and feel o visualizacin. Por ejemplo, el mismo programa puede usar un
Soporte para Look-and-Feel o look and feel de Java o de Windows. Muchos paquetes look and feel estn
visualizaciones disponibles de distintas fuentes. Desde la versin v1.4.2, la plataforma Java
soporta GTK+, lo que permite que cientos de look and feels existentes se
puedan utilizar en programas Swing.
Permite tecnologas asistidas, como lectores de pantalla y dispositivos Braille,
API de accesibilidad
para obtener informacin desde la interfaz del usuario.
Permite fcilmente incorporar grficos 2D de alta calidad, texto, e imgenes en
aplicaciones y applets. Java 2D incluye extensivas APIs (Application Programming
API Java 2D
Interface o Interfaz de Programacin de Aplicaciones) para generar y enviar a
dispositivos de impresin una salida de alta calidad.
Provee la habilidad de Arrastrar y Soltar entre aplicaciones Java y aplicaciones
Soporte de Arrastrar y Soltar
nativas.
Permite construir aplicaciones que pueden interactuar con usuarios alrededor
del mundo en sus propios lenguajes y convenciones culturales. Con el marco de
Internacionalizacin mtodos de entrada se puede construir aplicaciones que acepten texto en
lenguajes que usan miles de caracteres diferentes, como el japons, chino, o el
coreano.
2 POLITECNICO
Como funciona el AWT de Java
El AWT requiere que este funcionando el sistema de ventanas nativo en la plataforma, porque lo utiliza
para implementar las ventanas en Java. Esto significa que el comportamiento de los elementos del AWT es
el proporcionado por el sistema nativo de ventanas; Tngase en cuenta que puede ser bastante diferente
en plataformas diferentes. A continuacin puede ver un grfico que explica resumidamente el
comportamiento del AWT dentro de la Mquina Virtual y una plataforma cualquiera:
4 3
Hardware
1) El programa Java realiza un pedido para agregar un botn a una ventana en la pantalla.
2) El AWT hace el pedido al sistema nativo de ventanas.
3) El sistema nativo de ventanas coloca el botn en la pantalla.
4) El botn en presionado por el Mouse.
5) El sistema nativo de ventanas comunica del evento ocurrido al Sistema Controlador de Eventos de Java.
6) El Controlador de Eventos de Java comunica del evento al programa Java.
POLITECNICO 3
JFC y Swing
Java
aqu para leer el archivo, el controlador del evento del botn debe realizar todo el pintado del botn
apretado, y tambin leer el archivo correspondiente. Controlar el evento de un botn slo significa
informar que ocurri, pero otros eventos como arrastrar algo con el Mouse lleva mucho ms trabajo para
hacerlo aparecer correctamente en pantalla.
Prcticamente toda la programacin de ventanas consiste en aprender acerca de los diferentes objetos
que se pueden poner en la pantalla (ventanas, barras deslizantes, botones, etc.). El cdigo encargado de
controlar los eventos de cada elemento ser invocado cuando se necesite.
Component
Window Panel
A partir de la creacin de JFC y Swing, dichas clases tienen sus correspondientes subclases cuyos
nombres comienzan con J y agregan todas las caractersticas descriptas al comienzo de este captulo a las
correspondientes clases de AWT. As por ejemplo la clase Component de AWT tiene su correspondiente
JComponent perteneciente a Swing, Container tiene su JContainer y as sucesivamente.
De aqu en ms slo haremos referencia a las clases Swing pero debe tenerse en cuenta que cada una
de ellas viene directamente de la jerarqua AWT.
4 POLITECNICO
Clase JComponent
La jerarqua del Swing parte de la clase JComponent, que define el tipo ms general de objeto Swing.
Todo en la pantalla esta construido a partir de componentes. Un componente principalmente realiza dos
funciones: se muestra a s mismo y a todo su contenido en pantalla; y controla los eventos relacionados a
los elementos de pantalla, tales como eventos de teclado y de Mouse cuando le corresponden a dicho
componente.
Un Componente tiene un tamao y una posicin, y puede ser dibujado en la pantalla. Esta es una clase
muy general que tiene mtodos para verificar si la instancia esta en pantalla, es visible, cual es su tamao
y su posicin, para mostrarla o no, y para indicar los colores y fuentes que utilizar. Tambin posee
mtodos para capturar eventos y controlarlos. Finalmente un componente se dibuja en pantalla cuando el
Sistema llama a su mtodo:
Cualquier objeto que pertenezca a una subclase de JComponent puede especializar el mtodo paint
para proveer instrucciones sobre como pintarse a s mismo.
Clase Container
Esta es una clase que se usa para contener varios componentes, y tratarlos como un grupo
relacionado. Normalmente, todos los controles en una ventana, o en una parte de una ventana estarn en
el mismo contenedor, y el contenedor los mostrar en pantalla. Posee el siguiente mtodo para agregar un
componente al contenedor:
Clase JWindow
Esta clase representa una ventana totalmente en blanco. Ni siquiera posee un borde o una barra de
men. Normalmente no se utiliza directamente, sino a travs de clases ms especializadas (cmo JFrame
y JDialog).
La clase JWindow tiene unos pocos mtodos para mostrar y ocultar la ventana, traerla al frente o
llevarla al fondo, y para agrupar los componentes que posee.
Clase JFrame
Esta es un tipo ms especializado de ventana, en la cual se crean y se procesan Barras de Men (las
cuales pueden ser de mltiples niveles).
Tiene un borde y posiblemente una barra de Men asociada. Cuando se crea un JFrame, no es
fsicamente mostrado dentro del applet u otro contenedor, sino que como una ventana separada que flota
libremente en la pantalla.
Posee internamente un panel de contenido en donde se pueden agregar componentes.
A continuacin se muestra un simple ejemplo para mostrar un JFrame en pantalla en una aplicacin:
POLITECNICO 5
JFC y Swing
Java
import javax.swing.*;
public class ventana {
static JFrame f = new JFrame("Ventana");
Clase Dialog
La clase JDialog puede ser usada para mostrar una ventana que tiene un rea donde el usuario puede
escribir una lnea de texto. Los dilogos pueden ser modales (ninguna entrada del usuario puede ocurrir
hasta que se cierra el dilogo) o no-modales (el dilogo puede ser ignorado o utilizado cuando se desee).
Esto se controla con una bandera booleana en el constructor.
Clase JPanel
Un panel es una pequea regin que normalmente se utiliza dentro de un JFrame. Cada panel puede
ser tratado como un contenedor: se le puede agregar componentes, capturar eventos, etc.
Clase JApplet
JApplet es un tipo de panel. Esto nos dice principalmente que los Applets ya tienen un
comportamiento grfico en s.
Una ventaja de un Applet sobre una aplicacin para un programa interactivo es que uno puede
empezar a agregar componentes y mostrarlos sin necesidad de crear un entorno, porque ya existe uno (el
del Navegador correspondiente).
Al igual que el Jrame, posee internamente un panel de contenido en donde se pueden agregar
componentes.
6 POLITECNICO
Controles del Swing
Los controles son los componentes que permiten una interaccin directa con el usuario, permitindole
ingresar datos, indicar acciones (a travs de botones, barras, etc.), desplazarse por cierta informacin, y
cualquier otra cosa que el programador le permita.
Todos son derivados de la clase JComponent, y los principales son los siguientes: JButton, JLabel,
JCheckBox, JTextField, JTextArea, JList, JComboBox.
Lo que el programador hace con estos controles es lo siguiente:
1) Los agrega a un JFrame o a un JApplet (debido a que stos son contenedores de componentes), y
luego se muestran.
2) Obtiene los eventos cuando el usuario presiona botones, realiza selecciones, etc., y los procesa.
El mtodo add puede ser aplicado al panel de contenido de un JFrame en una aplicacin, como sigue:
O, ms simplemente:
Aqu se utiliza el mtodo init(), que se invoca cuando el Applet es cargado en memoria, lo que hace
de este mtodo un buen lugar donde poner el cdigo que agrega estos controles; Pero tambin se puede
realizar dentro de los mtodos constructores, especialmente til si el objeto no slo ser utilizado como un
Applet.
A continuacin se detallan cada uno de los diferentes controles disponibles en el Swing, junto con una
descripcin de su uso:
JLabel
Es uno de los componentes ms simples, representa una etiqueta. Es una cadena de texto que aparece
en la pantalla. Estas etiquetas no reciben ninguna entrada del usuario, simplemente se utilizan como una
manera rpida de mostrar un texto en pantalla.
Cmo se utiliza?
Ejemplo:
JLabel l = new JLabel("Etiqueta");
getContentPane().add(l);
POLITECNICO 7
JFC y Swing
Java
JButton
Esta clase representa un botn. El programa se informa cada vez que el usuario lo presiona.
Cmo se utiliza?
El constructor toma un solo parmetro que representa el texto que se encuentra dentro del botn,
indicando su uso.
Ejemplo:
JButton b = new JButton("Presione aqu");
getContentPane().add(b);
Mtodos importantes
JTextField
Una lnea de texto en donde el usuario puede escribir. La cantidad de caracteres visibles se puede
configurar.
Cmo se utiliza?
Ejemplo:
JTextField tf = new JTextField("escriba aqu", 20);
getContentPane().add(tf);
Mtodos importantes
? String getText()
Obtiene el texto actual.
? void setText ( String texto )
Setea el texto al parmetro indicado.
8 POLITECNICO
JTextArea
Es un campo de texto con varias lneas en las cuales el usuario puede ingresar texto.
Cmo se utiliza?
Ejemplo:
JTextArea ta = new JTextArea("Texto Inicial", 4, 20);
getContentPane().add(ta);
Mtodos importantes
? String getText()
Obtiene el texto actual.
? void setText ( String texto )
Setea el texto al parmetro indicado.
JCheckbox
Un objeto grfico que representa un valor booleano de "presionado" o "no presionado"; o "activado" o
"desactivado". Posee un texto explicando la eleccin.
Cmo se utiliza?
Ejemplos:
JCheckbox cb = new JCheckbox("Azul?", true);
getContentPane().add(cb);
POLITECNICO 9
JFC y Swing
Java
Mtodos importantes
? boolean isSelected()
el estado de este JCheckbox, como un valor booleano.
? void setSelected( boolean state )
cambia el estado del JCheckbox.
? String getText()
el texto que acompaa a este JCheckbox, o null si no tiene texto.
? void setText( String label )
cambia el texto que acompaa al JCheckbox, o null si no tiene texto.
JList
Una lista deslizable de cadenas de texto, de donde el usuario puede seleccionar una o ms de ellas (se
puede configurar como de simple o mltiple seleccin).
Cmo se utiliza?
El constructor ms general toma un solo parmetro que representa un arreglo de objetos que sern el
contenido inicial de la lista.
Ejemplo:
String[] datos = {"uno", "dos", "tres", "cuatro"};
JList lista = new JList(datos);
getContentPane().add(lista);
Mtodos importantes
? int getSelectedIndex()
Obtiene el ndice del elemento seleccionado, o 1 si no hay elementos seleccionados o hay ms de un
elemento seleccionado (para este caso utilice getSelectedIndexes()).
? int[] getSelectedIndices()
Obtiene un arreglo con los ndices de todos los elementos seleccionados.
? Object getSelectedValue()
Obtiene el objecto seleccionado, o null si no hay elementos seleccionados.
? Object[] getSelectedValues()
Obtiene un arreglo con los objetos seleccionadas.
10 POLITECNICO
JComboBox
Permite seleccionar entre varias cadenas de texto dadas. Es una lista desplegable, similar a un men
desplegable. Normalmente slo se ve la cadena seleccionada, pero cuando se presiona con el botn del
Mouse sobre este control, se despliega una lista con todas las dems opciones, de manera que el usuario
pueda elegir la que desee. Tambin posee otro modo de funcionamiento en el cual se puede escribir un
texto nuevo aunque este no pertenezca a la lista del mismo.
Cmo se utiliza?
El constructor ms general toma un solo parmetro que representa un arreglo de objetos que sern el
contenido inicial de la lista.
Ejemplo:
String[] datos = {"uno", "dos", "tres", "cuatro"};
JComboBox cb = new JComboBox(datos);
getContentPane().add(c);
Mtodos importantes
JMenu
Un JFrame puede contener a una barra de men (clase JMenuBar), quien a su vez puede contener
varios mens desplegables (clase JMenu). La barra de men aparece sobre la parte superior del JFrame
y muestra los nombres de cada men que se le agreg. Cada men desplegable contiene elementos que
se pueden seleccionar (clase JMenuItem), cada uno de ellos identificado con una cadena de caracteres
(clase String). Se puede poblar un men no slo con elementos (JMenuItem), sino tambin con otros
mens, creando de esta manera mltiples niveles de men.
Cmo se utiliza?
La barra de men (con la clase JMenuBar) se construye con un simple constructor sin parmetros.
Este objeto JMenuBar es el que representa la propia barra que se encuentra en el JFrame, y es ste el
que debe agregarse al JFrame como un nuevo elemento (con el mtodo 'setJMenuBar(JMenuBar)'
del JFrame).
Luego, por cada men que contendr la barra, se debe crear un objeto JMenu con el nombre del
men. Estos mens deben luego ser agregados a la barra de men, a travs del mtodo 'add(JMenu)'
del JMenuBar.
POLITECNICO 11
JFC y Swing
Java
Y finalmente, para cada elemento que contendr cada men, se crean los correspondientes objetos
JMenuItem con el String deseado, para luego ser agregados (con el mtodo 'add(JMenuItem)' del
JMenu) al men correspondiente.
Todo esto es mucho ms sencillo de ver a travs de un ejemplo, tratemos de hacer lo siguiente:
1. Una barra con dos mens: "Archivo" y "Edicin";
2. Para el men "Archivo" tendremos tres elementos: "Cargar", "Grabar" y "Salir";
3. Para el men "Edicin" dos elementos: "Borrar" y "Pegar".
Al cada objeto JMenu no slo le se pueden agregar elementos de tipo JMenuItem sino tambin otros
mens (clase JMenu, para lograr mltiples niveles) y elementos de tipo JCheckboxMenuItem, que
representan una opcin de men que puede ser activada y desactivada. La manera de utilizar este objeto
es similar al JMenuItem, pudiendo tomar el constructor un parmetro ms indicando el estado inicial del
elemento (como un booleano) y teniendo los mtodos:
? boolean isSelected()
? void setSelected( boolean b )
para obtener y setear el estado respectivamente.
12 POLITECNICO
Eventos en Java
El sistema de eventos en Java funciona de la siguiente manera:
1. El Sistema Nativo de la plataforma en que se ejecuta la Mquina Virtual Java genera un evento, ya
sea debido a un evento de Hardware, como cuando se mueve el Mouse o se presiona una tecla, o
debido a eventos de Software, como cuando es necesario repintar un componente, cambiar su
tamao, etc.;
2. Si el evento generado corresponde a un programa Java, se le informa a la Mquina Virtual a travs
del Controlador de Eventos de Java, quien a su vez comprueba a que JFrame de los que estn
visibles corresponde y le informa (o a un JApplet, depende el caso);
3. El JFrame verifica si el evento le pertenece y si no verifica a cul de los componentes que contiene le
corresponde. Si el JFrame contiene otros contenedores (clase Container) y el evento lo recibe uno
de ellos, estos tambin empiezan a verificar a quien de sus "hijos" corresponde, formando un rbol,
de manera que un evento siempre lo reciben los componentes que se encuentran ltimos (o ms
arriba) en la jerarqua de hijos.
4. La manera de informarle al objeto correspondiente de ese programa (siempre un componente) es a
travs de uno o ms mtodos previamente acordados para avisar de ese evento, es decir, cuando el
componente recibe el evento, ste empieza a invocar a cada uno de los mtodos que previamente se
le indico que controlaran ese evento.
Existen distintos tipos de eventos en Java, cada uno correspondiente a un caso particular. El AWT nos
provee de dos tipos conceptuales de eventos: de bajo nivel y semnticos.
Un evento de bajo nivel es aqul que representa una entrada de bajo nivel (como movimientos y clics
del Mouse, presiones del teclado, etc.) o una ocurrencia del Sistema de Ventanas en un componente visual
en la pantalla (como ser que una ventana necesita volver a pintarse, o cambio su tamao, etc.). Las clases
de eventos de bajo nivel definidas por el AWT son las siguientes:
java.util.EventObject
java.awt.AWTEvent
java.awt.event.ComponentEvent (se mueve, cambia el tamao de un componente, etc.)
java.awt.event.FocusEvent (un componente adquiere el foco, o pierde)
java.awt.event.InputEvent
java.awt.event.KeyEvent (se apret una tecla, se solt, en el componente, etc.)
java.awt.event.MouseEvent (se apret el botn del mouse, se movi, etc.)
java.awt.event.ContainerEvent
java.awt.event.WindowEvent
Los eventos semnticos estn definidos a un mayor nivel para encapsular la semntica de un modelo
de componentes de interfaz de usuario. Las clases de eventos semnticos definidas por el AWT son las
siguientes:
java.util.EventObject
java.awt.AWTEvent
java.awt.event.ActionEvent (ocurri una accin determinada)
java.awt.event.AdjustmentEvent (un valor fue ajustado)
java.awt.event.ItemEvent (cambi el estado de un item)
java.awt.event.TextEvent (el valor del objeto de texto cambi)
Estos eventos semnticos no estn directamente ligados a ningn componente, pero tienen sentido
para un grupo de componentes que implementan un modelo semntico similar. Por ejemplo, un objeto
Botn (clase JButton) va a generar un evento de "accin" cuando sea presionado, un objeto Lista (clase
JList) generar un evento de "accin" cuando se presione dos veces con el botn del Mouse sobre un
POLITECNICO 13
JFC y Swing
Java
elemento de ella, un elemento de un men (clase JMenuItem) generar un evento de "accin" cuando
sea seleccionado de un men, y un objeto temporizador podra generar un evento "accin" cuando su
contador termine (este ltimo es un caso hipottico).
java.util.EventListener
java.awt.event.ComponentListener
java.awt.event.ContainerListener
java.awt.event.FocusListener
java.awt.event.KeyListener
java.awt.event.MouseListener
java.awt.event.MouseMotionListener
java.awt.event.WindowListener
Las interfaces controladoras de eventos semnticos definidas por el AWT son las siguientes:
java.util.EventListener
java.awt.event.ActionListener
java.awt.event.AdjustmentListener
java.awt.event.ItemListener
java.awt.event.TextListener
Adaptadores
Como muchas de las interfaces controladoras de eventos estn diseadas para controlar mltiples
subtipos de eventos (por ejemplo: la interfaz MouseListener controla eventos de los botones del Mouse,
cuando se presionan y cuando se sueltan, eventos de cuando el Mouse entra o sale de un componente,
etc.), el AWT provee un conjunto de clases abstractas "adaptadoras", implementando cada una de las
interfaces controladoras. Esto permite, de manera muy simple, crear subclases de los Adaptadores y
especializar slo los mtodos representando los tipos de eventos que estamos interesados en controlar.
14 POLITECNICO
Las clases Adaptadoras provistas por el AWT son las siguientes:
java.awt.event.ComponentAdapter
java.awt.event.ContainerAdapter
java.awt.event.FocusAdapter
java.awt.event.KeyAdapter
java.awt.event.MouseAdapter
java.awt.event.MouseMotionAdapter
java.awt.event.WindowAdapter
Nota: no hay adaptadores provistos para los controladores de eventos semnticos, ya que cada uno de
stos slo contienen un mtodo y un adaptador no sera de una utilidad real.
El objeto controlador creado a partir de esa clase debe luego ser registrado con el componente usando
el mtodo correspondiente del componente (a continuacin estn detallados todos las distintas categoras
de eventos con sus correspondientes clases relacionadas y sus mtodos). Cuando en el componente
ocurra algn evento relacionado con el tipo de evento que hemos registrado, el mtodo correspondiente
ser invocado y se le pasar un objeto de evento (clases derivadas de EventObject) correspondiente al
evento generado.
POLITECNICO 15
JFC y Swing
Java
Eventos de Componente
Cuando cambia el tamao del componente, su posicin, o su visibilidad, el mtodo relevante en el
objeto controlador es invocado, y recibe un objeto ComponentEvent.
Los eventos de Componente son provistos nicamente para su notificacin; el AWT automticamente
controlar los movimientos y cambios de tamao internamente de manera que el programa responda
correctamente independientemente de si se registra un controlador de eventos de Componente o no.
La clase controladora de los eventos de Componente se puede crear implementando la interfaz
ComponentListener o extendiendo la clase adaptadora ComponentAdapter. El objeto controlador de
este tipo de eventos se registra con el mtodo addComponentListener() perteneciente a cualquier
componente (clase Component).
Eventos de Contenedor
Cuando cambia el contenido de un contenedor porque se agreg o quit un componente de l, el
mtodo relevante en el objeto controlador es invocado, y recibe un objeto ContainerEvent.
Los eventos de Contenedor son provistos nicamente para su notificacin; el AWT automticamente
realizar las operaciones de agregar y quitar internamente de manera que el programa responda
correctamente independientemente de si se registra un controlador de eventos de Contenedor o no.
La clase controladora de los eventos de Contenedor se puede crear implementando la interfaz
ContainerListener o extendiendo la clase adaptadora ContainerAdapter. El objeto controlador de este
tipo de eventos se registra con el mtodo addContainerListener() perteneciente a los contenedores
(clase Container).
16 POLITECNICO
Mtodos de la clase ContainerEvent
? Component getComponent()
Obtiene el componente donde fue generado este evento.
? Container getContainer()
Obtiene el contenedor donde fue generado este evento.
? Component getChild()
Obtiene el componente hijo que fue agregado o quitado en este evento.
Eventos de Foco
Se genera un evento de foco cuando un componente obtiene o pierde el foco del teclado. Slo un
componente puede recibir los eventos del teclado en un momento dado; este componente que los recibe
posee el foco del teclado. El usuario puede, a travs del Mouse y del teclado, cambiar en cualquier
momento el foco del teclado, es decir el componente que recibir los eventos del teclado (presionando
sobre un componente o con una combinacin de teclas), y es ese momento en el cual se genera un
evento de Foco. En este momento el mtodo relevante en el objeto controlador es invocado, y recibe un
objeto FocusEvent.
La clase controladora de los eventos de Foco se puede crear implementando la interfaz FocusListener
o extendiendo la clase adaptadora FocusAdapter. El objeto controlador de este tipo de eventos se
registra con el mtodo addFocusListener() perteneciente a cualquier componente (clase
Component).
Eventos de Teclado
Cada vez que una tecla es presionada, soltada, o tipeada (presionada y soltada) se genera un evento
de Teclado. El mtodo relevante en el objeto controlador es entonces invocado, y recibe un objeto
KeyEvent.
La clase controladora de los eventos de Teclado se puede crear implementando la interfaz
KeyListener o extendiendo la clase adaptadora KeyAdapter. El objeto controlador de este tipo de
eventos se registra con el mtodo addKeyListener() perteneciente a cualquier componente (clase
Componente).
POLITECNICO 17
JFC y Swing
Java
Eventos de Mouse
Un evento de Mouse se genera cuando el Mouse es presionado, soltado, o clickeado (presionado y
soltado). Tambin se genera un evento de Mouse cuando el cursor del Mouse entra o sale de un
componente. Cuando ocurre un evento de Mouse el mtodo relevante en el objeto controlador es
invocado, y recibe un objeto MouseEvent.
La clase controladora de los eventos de Mouse se puede crear implementando la interfaz
MouseListener o extendiendo la clase adaptadora MouseAdapter. El objeto controlador de este tipo de
eventos se registra con el mtodo addMouseListener() perteneciente a cualquier componente (clase
Componente).
18 POLITECNICO
? public void mouseEntered( MouseEvent e )
Invocado cuando el Mouse entra a un componente.
? public void mouseExited( MouseEvent e )
Invocado cuando el Mouse sale de un componente.
POLITECNICO 19
JFC y Swing
Java
Eventos de Ventana
Cuando el estado de una ventana cambia en virtud de ser abierta, cerrada, activada o desactivada,
iconizada o desiconizada, el mtodo relevante en el objeto controlador es invocado, y recibe un objeto
WindowEvent.
La clase controladora de los eventos de Mouse se puede crear implementando la interfaz
WindowListener o extendiendo la clase adaptadora WindowAdapter. El objeto controlador de este
tipo de eventos se registra con el mtodo addWindowListener() perteneciente a cualquier dilogo
(clase JDialog), Frame (clase JFrame) o derivado.
Eventos de Accin
Estos eventos representan una accin, definida independientemente para cada componente que los
genere. Cuando ocurre un evento de Accin, el mtodo actionPerformed() del objeto controlador es
invocado, y recibe un objeto ActionEvent.
La clase controladora de los eventos de Accin se puede crear implementando la interfaz
ActionListener. El objeto controlador de este tipo de eventos se registra con el mtodo
addActionListener() perteneciente a los siguientes componentes, que los generan en los casos
mencionados:
? Botones (clase JButton), cuando son presionados;
? Listas (clase JList), cuando se doble-clickea con el Mouse sobre uno de sus elementos;
20 POLITECNICO
? Elementos de men (clase JMenuItem), cuando se selecciona el elemento en un men;
? Y campos de texto (clase JTextField), reciben de a dos eventos por cada tecla que se presiona en
ellos, uno cuando se presiona y otro cuando se suelta la tecla.
Eventos de Ajuste
Estos eventos representan un ajuste realizado a un valor determinado de un componente. Cuando
ocurre un evento de Ajuste, se invoca el mtodo adjustmentValueChanged() del objeto controlador, y
recibe un objeto AdjustmentEvent.
La clase controladora de los eventos de Accin se puede crear implementando la interfaz
AdjustmentListener. El objeto controlador de este tipo de eventos se registra con el mtodo
addAdjustmentListener() perteneciente a las barras de desplazamiento (clase JScrollbar), y se
genera cada vez que se modifica el valor que representa barra y por lo tanto se hace necesario un ajuste
al valor.
Eventos de Elemento
Estos eventos representan un cambio en el estado de los elementos de un componente, normalmente
el estado de seleccin. Cuando ocurre un evento de Elemento, el mtodo itemStateChanged() del
objeto controlador es invocado, y recibe un objeto ItemEvent.
La clase controladora de los eventos de Elemento se puede crear implementando la interfaz
ItemListener. El objeto controlador de este tipo de eventos se registra con el mtodo
addItemListener() perteneciente a los siguientes componentes:
? Seleccin mltiple(clase JComboBox);
? Seleccin booleana (clase JCheckbox);
? Elementos de men booleanos (clase JCheckboxMenuItem);
? Listas (clase JList).
POLITECNICO 21
JFC y Swing
Java
Eventos de Texto
Estos eventos representan un cambio en el texto de un componente. Cuando el texto del componente
cambia, el mtodo textValueChanged() del objeto controlador es invocado, y recibe un objeto
TextEvent.
La clase controladora de los eventos de Texto se puede crear implementando la interfaz TextListener.
El objeto controlador de este tipo de eventos se registra con el mtodo addTextListener()
perteneciente a los siguientes componentes:
? rea de texto (clase JTextArea);
? Campo de texto (clase JTextField).
22 POLITECNICO