Programación Avanzada.
Centro Superior de Informática.
Universidad de La Laguna.


Manipulación de Eventos Simples.

 
  1. En esta práctica se proponen dos ejercicios:
    1.  
    2. Escribir un programa que cree un marco (frame) y muestre un recuadro sólido en el punto en el que se ha presionado el ratón.
    3. Escribir un programa que cree un marco que muestre un boton (button) que al ser seleccionado cierre la ventana de la misma forma que se cierra si se presiona la "x" de la esquina superior derecha.
    Un marco (frame) es una ventana de nivel-máximo con un título. Todos los elementos gráficos de una aplicación Java deben residir en un marco.
    Un marco es un objeto Java que se crea a partir de la clase Frame del paquete AWT. El siguiente programa crea un marco (el fichero está aquí):
               
              import java.awt.*;

              public class MyFrame {

                public static void main(String[] args)
                {
                  Frame f = new Frame("Test Frame");
                  f.setSize(200,150);
                  f.setVisible(true);
                }
               

    Al ejecutarlo la salida será:

    Sin embargo, este programa a pesar de ser correcto no permite cerrar la ventana porque no se ha dicho cómo hacerlo. Para ello es necesario utilizar manipulación de eventos.

    El programa FrameExitHandling (fichero está aquí) crea un marco que extiende a la clase Frame con la capacidad de cerrar la ventana. El evento "cerrar ventana" es de tipo WindowEvent y su correspondiente interface oyente es WindowListener, por lo tanto el programa implementa dicha interface.

    En el método main se crea una instancia de la clase Frame, se establece el tamaño del marco usando setSize(), y se hace visible usando setVisible(true).
    La clase FrameExitHandling  implementa la interface WindowListener en la que se definen los métodos abstractos que permiten manipular los eventos asociados con las ventanas, puesto que todos son abstractos se deben implementar todos incluso si el programa no los utiliza.

Para los ejercicios que se proponen a continuación se ha de extender la clase FrameExitHandling .
  1. Escriba una clase TestMouseEvent que extienda a la clase anterior y que implemente la interface oyente de Rantón (MouseListener)
  2. , de forma que cuando el usuario presione el ratón, en ese punto, se dibuje un rectangulo de 10x10 pixels (aquí puede encontrar un esqueleto del programa).
     


     
  3. Escriba otra clase TestActionEvent que cree un objeto botón (Button) que tenga la propiedad de cerrar la ventana cuando el usuario lo selecciona. Para ello ha de registrar al objeto botón como oyente de las acciones del usuario (ActionListener)
  4. (aquí puede encontrar un esqueleto del programa).
     


     

Bibliografía.

[1] Y. Daniel Liang. "Introduction to Java Programming". QueE&T. 1999
[2] S. Davis. "Aprenda Java ya". McGraw-Hill. Microsoft Press. 1996.
[3] J. Gosling,  H. McGilton. "The Java Language Enviroment". A White Paper. Sun Microsystems. Java Soft. 1996.
[4] J.F. Macary, C. Nicolas. "Programación Java". Eyrolles.