6. Interfaz


6.1 Soporte para gestionar interfaces en Jade


Como es común trabajar con agentes con un GUI, JADE incluye la clase jade.gui.GuiAgent para este propósito específico. Esta clase es una extensión de la clase jade.core.Agent: desde el principio (es decir, cuando se ejecuta el método setup ()) él inicializa un comportamiento ad hoc que maneja una cola de evento (objetos de tipo jade.gui.GuiEvent) que pueden ser recibidos por otros hilos.

Este comportamiento, por supuesto, se oculta al programador, que sólo necesita implementar el código específico para gestionar cada evento.
Para poder definir interfaces en Jade , es necesario incluir la sentencia :
import jade.gui.*;

6.2 Operaciones a realizar


Un hilo (particularmente el GUI) que desea notificar un evento a un agente de tipo jade.gui.GuiAgent debe crear un nuevo objeto de tipo jade.gui.GuiEvent y pasárselo como parámetro a la llamada del método postGuiEvent () de dicho agente. Después de que el método postGuiEvent () sea llamado, el agente reacciona despertando todos sus comportamientos activos, en particular, el comportamiento del agente que activa dicho evento en el método onGuiEvent ().

Es importante decir que el objeto GuiEvent tiene dos parámetros obligatorios:

  1. La fuente del evento y...
  2. Un número entero que identifica el tipo de evento.

Y una lista opcional de parámetros que se puede agregar a dicho GuiEvent con la ayuda del método addParameter ().

Por consiguiente, un agente que desea recibir eventos de su interfaz gráfica (GUI), debe declarar constantes de tipo entero que identifiquen estos eventos que se propone recibir, y después deberá gestionarlos en su método onGuiEvent (). Este método posee generalmente un switch, y en cada uno de sus cases tratará cada evento.

Nota. Véanse las clases ControllerAgent y ControllerAgentGui de los ejemplos Move y Clone del apartado 5.Movilidad