Beruflich Dokumente
Kultur Dokumente
Un evento es resultado de la ejecucin de una accin dentro de un entorno grfico. Los eventos son objetos. Los componentes (botones, mens, campo de texto) son generadores de eventos (origen) Un origen de eventos debe registrar objetos oyentes que manipulen a los eventos
El paquete java.awt.event proporciona clases base para generar eventos. Contiene una serie de interfaces para implementar objetos oyentes. Adicionalmente proporciona un grupo de clases adaptadoras para facilitar la codificacin.
Registro de Oyentes Cada origen de evento debe indicar (registrar) a su objeto Oyente
Evento de Ventana
Oyente de Ventana
La clase oyente debe implementar todos los mtodos de la interfaz WindowListener, aunque no los use.
Tpicos Selectos de Programacin 1.4.3.- 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.
Para usarlas deben heredar a la clase oyente. La clase oyente entonces hereda la clase adaptadora para el evento WindowAdapter es la clase adaptadora para WindowEvent.
Tpicos Selectos de Programacin 1.4.5.- Eventos de teclado Las teclas solo genera eventos de la clase KeyEvent
import java.awt.*; import java.awt.event.*; public class EventoTeclado extends Frame{ private int iX; private int iY; private int diametro; private Color elColor; public EventoTeclado(){ super("Eventos de teclado"); setSize(400,400); setBackground(Color.CYAN); elColor=Color.BLACK; diametro=50; iX=iY=100;
public void paint(Graphics g){ g.setColor(elColor); g.fillOval(iX, iY, diametro, diametro); if(elColor==Color.BLUE){ g.fillRect(iX+100, iY+100, diametro,diametro); } } public void addEventos(){ addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); } }); addKeyListener(new KeyAdapter(){ public void keyPressed(KeyEvent e){ int codigo=e.getKeyCode(); System.out.println("codigo="+codigo); switch(codigo){ case KeyEvent.VK_UP: iY-=5; break; case KeyEvent.VK_DOWN: iY+=5; break; case KeyEvent.VK_RIGHT: iX+=5; if(iX>(400-diametro)) iX=400-diametro; break; case KeyEvent.VK_LEFT: iX-=5; if(iX<0) iX=0; break; case KeyEvent.VK_PLUS : if(diametro<200) diametro+=5; break; case KeyEvent.VK_MINUS : if(diametro>10) diametro-=5; break; case KeyEvent.VK_B : elColor = Color.WHITE; break;
Las interfaces para oyentes de eventos de un ratn tienen los siguientes mtodos.
Con getX() y getY() se obtiene la posicin del ratn en el momento de generar el evento
}); addMouseMotionListener(new MouseMotionAdapter(){ public void mouseMoved(MouseEvent e){ iX=e.getX(); iY=e.getY(); repaint(); } public void mouseDragged(MouseEvent e){ iX=e.getX(); iY=e.getY();
} } });
public void abrirArchivo(){ FileDialog dialogo = new FileDialog(this,"Abrir Archivo",FileDialog.LOAD); dialogo.setFile("*.java"); dialogo.setVisible(true); String nombre = dialogo.getDirectory()+ dialogo.getFile(); System.out.println("El nombre es "+nombre); } public void guardarArchivo(){ FileDialog dialogo = new FileDialog(this,"Guardar Archivo",FileDialog.SAVE); dialogo.setFile("*.java"); dialogo.setVisible(true); String nombre = dialogo.getDirectory()+ dialogo.getFile(); System.out.println("El nombre es "+nombre); } } import java.awt.*; import java.awt.event.*; public class VentanaDialogo extends Dialog{ private Button boton1; private Button boton2; public VentanaDialogo(String titulo,Frame padre){ super(padre,titulo,true); setSize(200,100); setLocation(100,100); addComponentes(); addEventos(); } public void addComponentes(){ boton1 = new Button("Aceptar"); boton2 = new Button("Cancelar");