Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Programacin
Orientada a Eventos
Eventos en Java
Un evento es resultado de la ejecucin
de una accin dentro de un entorno
grfico. Los eventos son objetos.
Los componentes (botones,
menues, campo de texto) son
generadores de eventos (origen)
Eventos en Java
Oyente de eventos
Origen de eventos
registra
Objeto
Objeto
ge
n
er
a
Evento
Objeto
la
u
ip
n
a
El paquete java.awt.event
El paquete java.awt.event proporciona
clases base para generar eventos.
Paquete java.awt.event
Clases Adaptadoras
Object
Object
MouseAdapter
MouseAdapter
WindowAdapter
WindowAdapter
ComponentAdapter
ComponentAdapter
ContainerAdapter
ContainerAdapter
KeyAdapter
KeyAdapter
FocusAdapter
FocusAdapter
MouseMotionAdapter
MouseMotionAdapter
EventObject
EventObject
Clases Eventos
AWTObject
AWTObject
ItemEvent
ItemEvent
AdjustmentEvent
AdjustmentEvent
TextEvent
TextEvent
ActionEvent
ActionEvent
ComponentEvent
ComponentEvent
ContainerEvent
ContainerEvent
FocusEvent
FocusEvent
WindowEvent
WindowEvent
InputEvent
InputEvent
KeyEvent
KeyEvent
MouseEvent
MouseEvent
Paquete java.awt.event
EventListener
EventListener
ActionListener
ActionListener
MouseListener
MouseListener
AdjustmentListener
AdjustmentListener
MouseMotionListener
MouseMotionListener
ComponentListener
ComponentListener
MouseWheelListener
MouseWheelListener
ContainerListener
ContainerListener
TextListener
TextListener
FocusListener
FocusListener
WindowListener
WindowListener
ItemListener
ItemListener
WindowFocusListener
WindowFocusListener
KeyListener
KeyListener
WindowStateListener
WindowStateListener
III.4
Registro de Oyentes
Registro de Oyentes
import java.awt.*;
import java.awt.event.*;
public class EBotonEvento extends Frame{
int tipoCara;
Objetos
origen de
Eventos
public EBotonEvento(){
super("Manejo Simple de Eventos");
Objetos
setSize(300,300);
oyentes de
setLayout(new FlowLayout());
setBackground(Color.GRAY);
Eventos
tipoCara=0;
Button boton1 = new Button("Carita Feliz");
Button boton2 = new Button("Carita Triste");
AccionBoton aBoton1 = new AccionBoton(1);
AccionBoton aBoton2 = new AccionBoton(2);
add(boton1);
Registro de
add(boton2);
boton1.addActionListener(aBoton1);
oyentes
boton2.addActionListener(aBoton2);
setVisible(true);
}
Registro de Oyentes
Oyente de eventos
Origen de eventos
El objeto boton1
registra al oyente
aBoton1 usando el
mtodo
addActionListener()
boton1
aBoton1
Registro de Oyentes
La forma de registrar objetos oyentes es similar
para cualquier tipo de evento:
objetoOrigen.addEventoListener(objetoOyente);
Eventos de Botones
Generador de Eventos
Button
Evento Generado
ActionEvent
ActionListener
Mtodos implementados
ActionPerformed()
III.4
Otras Formas
de Oyentes
el oyente
Se registra la
ventana como
oyente
Generador y Oyente
La ventana es
...
el oyente
Oyente annimo
...
public class EBotonEvento2 extends Frame {
...
Se registra un
public EBotonEvento2(){
oyente creando un
...
boton1 = new Button("Carita Feliz"); objeto de la interfaz
ActionListener
...
boton1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
tipoCara = 1;
repaint();
}
});
...
}
Se puede registrar un
oyente annimo
III.4
Eventos
de Ventana
Eventos de Ventanas
Generador de Eventos
Frame, Dialog
Evento Generado
WindowEvent
WindowListener
Mtodos implementados
windowClosing()
windowOpened()
windowClosed()
windowIconified()
windowDeiconified()
windowActivated()
windowDeactivated()
Registro de Oyente
import java.awt.*;
import java.awt.event.*;
public class EVentanaEvento extends Frame {
...
public EVentanaEvento(){
...
AccionVentana aVentanaEvento = new AccionVentana();
addWindowListener(aVentanaEvento);
...
}
Registro de
oyente
Objeto
oyente
III.4
Clases Adaptadoras
Clase Adaptadora
Es muy tedioso implementar interfaces
si solo se ocuparn pocos mtodos
Oyente annimo
import java.awt.*;
import java.awt.event.*;
public class EVentanaEvento extends Frame {
...
public EVentanaEvento(){
...
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
show();
}
...
}
III.4
Eventos
de Teclado
Eventos de Teclado
Generador de Eventos
Componente
Evento Generado
KeyEvent
KeyListener
Clase Adaptadora
KeyAdapter
Mtodos implementados
keyPressed()
keyReleased()
keyTyped()
Eventos de Teclado
Un objeto KeyEvent tiene los siguientes miembros:
VK_F1,...
VK_1,...
VK_A,...
VK_UP,...
Registro de Oyente
import java.awt.*;
import java.awt.event.*;
public class ETeclaEvento extends Frame {
...
public ETeclaEvento(){
...
addKeyListener(new AccionTecla());
...
}
Registro de
oyente
III.4
Eventos
de Ratn
Eventos de Ratn
Generador de Eventos
Componente
Evento Generado
MouseEvent
MouseListener
MouseMotionListener
Clase Adaptadora
MouseAdapter
MouseMotionAdapter
Mtodos implementados
mouseDragged()
mouseMoved()
mousePressed()
mouseReleased()
mouseClicked()
mouseDragged()
mouseMoved()
Registro de Oyente
import java.awt.*;
import java.awt.event.*;
public class ERatonEvento extends Frame {
Oyente de
...
public ERatonEvento(){
pulsacin
...
addMouseListener(new AccionBoton());
addMouseMotionListener(new MovimientoBoton());
...
}
Oyente de
public void paint(Graphics g){...}
movimiento
focus listener
mouse listener
Escucha clicks del mouse (sumir y soltar el
botn) y movimiento afuera y adentro del
rea del componente.
mouse-wheel listener
Escucha el movimiento de la rueda del
mouse sobre el componente
Otros Oyentes
Para saber que tipo de eventos puede
generar un componente slo hay que ver la
documentacin de los mtodos.
Por ejemplo: JComboBox tiene los siguientes
mtodos para registrar oyentes:
addActionListener
addItemListener
addPopupMenuListener