Lo que quiere implementar estas interfaces en su clase:
- HasMouseOverHandlers
- HasMouseOutHandlers
- mouseOverHandler
- mouseOutHandler
MouseOverEvent se activa cuando el ratón entra en el elemento y MouseOutEvent se activa cuando ya no está terminado.
HasMouseOverHandler se implementa como esto:
public HandlerRegistration addMouseOverHandler(MouseOverHandler handler) {
return addDomHandler(handler, MouseOverEvent.getType());
}
HasMouseOutHandler se implementa como esto:
public HandlerRegistration addMouseOutHandler(MouseOutHandler handler) {
return addDomHandler(handler, MouseOutEvent.getType());
}
Después de que acaba de controlar los eventos con un mouseOverHandler y mouseOutHandler, debe ser bastante directo después de eso.
Si desea agregar un manejador de eventos a un elemento que ya existe en el código HTML, la única idea que se me ocurre es crear una clase contenedora. Esto no se ha probado por completo.
class ElementWrapper extends UIObject implements HasMouseOverHandlers,
HasMouseOutHandlers
{
public ElementWrapper(Element theElement)
{
setElement(theElement);
}
public HandlerRegistration addMouseOutHandler(MouseOutHandler handler) {
return addDomHandler(handler, MouseOutEvent.getType());
}
public HandlerRegistration addMouseOverHandler(MouseOverHandler handler) {
return addDomHandler(handler, MouseOverEvent.getType());
}
}
entonces se podría obtener un elemento existente del HTML e inicializar así:
onModuleLoad()
{
Element theElement = RootPanel().get("elementID");
ElementWrapper wrapper = new ElementWrapper(theElement);
wrapper.addMouseOverHandler(new myHandler());
}
Espero que esto ayude.
¿Has echado un vistazo al ElementWrapper sugerido a continuación? – hannson