请帮忙!如何在gwt中模拟jre java.awt.MouseEvent?

时间:2010-09-27 05:01:52

标签: gwt mouseevent emulation

我想模拟java.awt.MouseEvent类,我定义了MouseEvent extends InputEvent,它扩展了java.util.EventObject。

但是当我在主机模式下运行时,我收到此错误,它显示我的InputEvent扩展了ComponentEvent。为什么?我该如何解决这个问题?谢谢!

java.lang.IllegalArgumentException: null source
    at java.util.EventObject.<init>(EventObject.java:38)
    at java.awt.AWTEvent.<init>(AWTEvent.java:279)
    at java.awt.event.ComponentEvent.<init>(ComponentEvent.java:96)
    at java.awt.event.InputEvent.<init>(InputEvent.java:204)
    at java.awt.event.MouseEvent.<init>(MouseEvent.java:548)
    at java.awt.event.MouseEvent.<init>(MouseEvent.java:450)

这种情况恰好发生在主机模式下,当我编译和部署它时,一切正常。

2 个答案:

答案 0 :(得分:0)

您使用的是错误的活动 - 它应该是MouseEvent(来自com.google.gwt.event.dom.client包),扩展名为DomEvent<H>。有关实现所有鼠标处理程序的小部件,请参阅HasAllMouseHandlers(或查看特定用例的各个接口)。

答案 1 :(得分:0)

AWT库中没有一个是GWT emulated JRE库的一部分。如果您想收听MouseEvent,则必须将Mouse*Handler添加到扩展FocusWidget的小部件中。例如,FocusWidget上的addMouseDownHandler及其子类。当鼠标按下该小部件时,您将获得MouseEvent