gpt4 book ai didi

GWT Widget.addHandler

转载 作者:行者123 更新时间:2023-12-05 01:27:23 27 4
gpt4 key购买 nike

我正在尝试使用 Widget.addHandler()。但是,处理程序永远不会被调用。下面是我的示例代码。我需要更改什么才能解决此问题?

我的处理程序实现:

public class CustomMouseMoveHandler
extends GwtEvent.Type<MouseMoveHandler>
implements MouseMoveHandler
{
@Override
public void onMouseMove(MouseMoveEvent event) {
System.out.println("----> onMouseMove.");
}
}

我的 EntryPoint.OnModuleLoad():

ContentPanel cp = new ContentPanel();
cp.setHeaderVisible(false);
cp.setHeight(com.google.gwt.user.client.Window.getClientHeight());

CustomMouseMoveHandler handler = new CustomMouseMoveHandler();
cp.addHandler(handler, handler);

RootPanel.get().add(cp);

/////添加于 2011 年 7 月 1 日。

以下完整的 GWT 简单代码也不起作用(应用了 Jason 的提示)。请帮帮我。谢谢

 package tut.client;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.event.dom.client.MouseMoveEvent;
import com.google.gwt.event.dom.client.MouseMoveHandler;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.TextArea;

/**
* Entry point classes define <code>onModuleLoad()</code>.
*/
public class GwtHandler implements EntryPoint, MouseMoveHandler {

/**
* This is the entry point method.
*/
public void onModuleLoad() {
TextArea comp = new TextArea();

comp.setSize("200px", "200px");
comp.setText("Testing Text");

comp.addHandler(this, MouseMoveEvent.getType());

RootPanel.get().add(comp);
}

@Override
public void onMouseMove(MouseMoveEvent event) {
com.google.gwt.user.client.Window.alert("onMouseMove");
}
}

最佳答案

GwtEvent.Type用于根据事件特定且唯一的对象来分派(dispatch)事件(对象相等 - == - 用于匹配事件类型)。通过你的 CustomMouseMoveHandler作为 TypeaddHandler表示用于 MouseMoveEvent 的事件类型以外的事件类型s(实际上,在这种情况下,每个 CustomMouseMoveHandler 都将分配给不同的事件 Type,因为每个对象都是不同的)。

而不是扩展 GwtEvent.Type<MouseMoveHandler>在您的处理程序中,您需要获取事件 Type来自 MouseMoveEvent本身(使用静态 getType() 方法)。

不要扩展 GwtEvent.Type在你的CustomMouseMoveHandler :

public class CustomMouseMoveHandler
implements MouseMoveHandler
{
...
}

并添加处理程序:

cp.addDomHandler(handler, MouseMoveEvent.getType());

关于GWT Widget.addHandler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6537458/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com