Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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)
Un origen de eventos debe registrar objetos oyentes que manipulen a los eventos
Eventos en Java
Origen de eventos Oyente de eventos
registra
Objeto
ge n er a
Objeto
la u ip n a
Evento Objeto
El paquete java.awt.event
El paquete java.awt.event proporciona clases base para generar eventos.
Paquete java.awt.event
Clases Adaptadoras
WindowAdapter WindowAdapter KeyAdapter KeyAdapter FocusAdapter FocusAdapter MouseMotionAdapter MouseMotionAdapter EventObject EventObject Object Object ComponentAdapter ComponentAdapter ContainerAdapter ContainerAdapter MouseAdapter MouseAdapter
Clases Eventos
ItemEvent ItemEvent TextEvent TextEvent
AWTObject AWTObject AdjustmentEvent AdjustmentEvent ActionEvent ActionEvent ComponentEvent ComponentEvent FocusEvent FocusEvent InputEvent InputEvent KeyEvent KeyEvent MouseEvent MouseEvent
Paquete java.awt.event
EventListener EventListener ActionListener ActionListener AdjustmentListener AdjustmentListener ComponentListener ComponentListener ContainerListener ContainerListener FocusListener FocusListener ItemListener ItemListener KeyListener KeyListener MouseListener MouseListener MouseMotionListener MouseMotionListener MouseWheelListener MouseWheelListener TextListener TextListener WindowListener WindowListener WindowFocusListener WindowFocusListener WindowStateListener WindowStateListener
III.4
Registro de Oyentes
Registro de Oyentes
import java.awt.*; import java.awt.event.*; public class EBotonEvento extends Frame{ int tipoCara;
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
Origen de eventos El objeto boton1 registra al oyente aBoton1 usando el mtodo addActionListener() boton1 aBoton1 Oyente de eventos
Registro de Oyentes
La forma de registrar objetos oyentes es similar para cualquier tipo de evento:
objetoOrigen.addEventoListener(objetoOyente);
Eventos de Botones
III.4
el oyente
boton1 = new Button("Carita Feliz"); boton2 = new Button("Carita Triste"); add(boton1); add(boton2); boton1.addActionListener(this); boton2.addActionListener(this); setVisible(true); } ...
Generador y Oyente
La ventana es ... el oyente
public void paint(Graphics g){...} public static void main(String[] args) {...} public void actionPerformed(ActionEvent e){ if(e.getSource() == boton1) tipoCara = 1; else tipoCara = 2; repaint(); } }
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(); } }); ... }
III.4
Eventos de Ventana
Eventos de Ventanas
Generador de Eventos Evento Generado Interfaz del Oyente Mtodos implementados Frame, Dialog WindowEvent WindowListener 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
La clase oyente debe implementar todos los mtodos de la interfaz WindowListener, aunque no los use.
III.4
Clases Adaptadoras
Clase Adaptadora
Es muy tedioso implementar interfaces si solo se ocuparn pocos mtodos
Java proporciona clases adaptadoras que ya implementaron todos los mtodos de las interfaces
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 Evento Generado Interfaz del Oyente Clase Adaptadora Mtodos implementados Componente KeyEvent KeyListener KeyAdapter keyPressed() keyReleased() keyTyped()
Eventos de Teclado
Un objeto KeyEvent tiene los siguientes miembros:
VK_F1,... VK_1,... VK_A,... VK_UP,... Variable esttica que define cada tecla
Registro de Oyente
import java.awt.*; import java.awt.event.*; public class ETeclaEvento extends Frame { ... public ETeclaEvento(){ ... addKeyListener(new AccionTecla()); ... } public void paint(Graphics g){...} public static void main(String[] args) {...}
Registro de oyente
III.4
Eventos de Ratn
Eventos de Ratn
Generador de Eventos Evento Generado Interfaz del Oyente Clase Adaptadora Mtodos implementados Componente MouseEvent MouseListener MouseMotionListener MouseAdapter MouseMotionAdapter mouseDragged() mouseMoved() mousePressed() mouseReleased() mouseClicked()
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
Con getX() y getY() se obtiene la posicin del ratn en el momento de generar el evento
focus listener
Escucha cuando el componente adquiri o perdi el foco del teclado (o sea que se puede introducir texto en l)
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