lunes, 25 de marzo de 2013

LOS OYENTES

Un oyente se llama cuando el usuario hace algo a la interfaz de usuario que provoca un evento . Altho estos eventos suelen provenir de la interfaz de usuario, que pueden tener otras fuentes (por ejemplo, un temporizador).

Botón ejemplo oyente

Después de un botón se crea, se agregará un oyente al mismo. Por ejemplo,
   b addActionListener (. listener_object );
Cuando se pulsa el botón, se realiza una llamada a la actionPerformed () método definido en la clase del objeto detector. Un objeto ActionEvent se pasa como un parámetro para actionPerformed () .

El método de escucha debe ser llamado actionPerformed

No es (por desgracia) no hay manera de utilizar cualquier método dado como oyente - el oyente debe ser llamado actionPerformed .
Uno por clase . Debido a que sólo puede haber un actionPerformed método en una clase, una clase nueva que se necesita para cada oyente separado, o usted tiene que compartir un actionPerformed método y utilizar la técnica feo de averiguar quién hizo la llamada.
Incidental nota . Para hacer frente a esta situación incómoda C # tiene delegados , que permiten a cualquier método para saber escuchar, siempre que tenga el tipo de retorno y parámetros correctos. Esto no proporciona ninguna funcionalidad adicional, pero es más conveniente.
Es necesario crear una instancia de la clase que define el actionPerformed método para el botón, y es esta instancia que se convierte en el detector de botón.

Estrategias comunes de escucha

Estas son algunas maneras comunes de escribir oyentes:
  1. Los oyentes con nombre de la clase interna es una de las formas más comunes de escribir pequeños programas. Son convenientes para escribir y ser compartida y con varios componentes.
  2. Los oyentes anónimos clase interna a veces se utiliza para asociar un oyente diferente con cada botón u otro control. Esto es un poco más rápido para escribir, pero le falta algo de la flexibilidad de los oyentes de clase interna.
  3. Los oyentes de nivel superior (este) se utilizan comúnmente cuando hay una sola fuente de un evento. Por ejemplo, si está definiendo una subclase de JPanel a utilizar para dibujar con el ratón, un ejemplo de esta nueva clase normalmente será también el detector de eventos del ratón. Lo mismo ocurre con un JPanel utilizado para la animación - el panel en sí puede servir como ActionListener para el temporizador. No use "esto" como oyente para los botones, menús, etc , porque entonces todos los controles que deben compartir un oyente de action.
  4. Acción y AbstractAction objetos son oyentes de acción. En algunos aspectos son más poderosas que otras estrategias de acción de escucha en el que fácilmente se pueden utilizar para activar o desactivar los controles múltiples. Un objeto acción puede ser compartida con muchos controles, por ejemplo, la misma acción a veces se consigue con un elemento de menú y una barra de herramientas o el botón de herramienta. Sino que encierran el nombre, descripción, estado de habilitación, oyente, y la información de icono. Esta es una buena opción para las interfaces de gran tamaño, y bastante compatible con el patrón MVC (ver más abajo).
  5. Los oyentes externos - Implementar el patrón Modelo-Vista-Controlador, todos los oyentes efectivamente será en el módulo controlador. Hay un número de maneras de dividir las acciones del controlador de la parte de vista de la interfaz. Un ejemplo es (MVC) Modelo-Vista-Controlador de Estructura .
  6. Crear subclases de un componente primordial y processActionEvent () . Este esquema peculiar ciertamente no es general, y nunca he visto hacer en un programa serio. No hagas esto.
Los ejemplos de las notas a utilizar el nombre de clase internas oyentes más a menudo, anónimos oyentes clase interna en algunos ejemplos, y de primer nivel oyentes para los oyentes de ratón para paneles gráficos.

No hay comentarios:

Publicar un comentario