gpt4 book ai didi

java - GWT @UiHandler 不起作用

转载 作者:行者123 更新时间:2023-11-30 08:16:14 27 4
gpt4 key购买 nike

我正在使用 GWT UiBinder...但我无法使用 @UiHandler,因为它不起作用。

XML

<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui">

<g:Button ui:field="btn" text="btn"></g:Button>

</ui:UiBinder>

Java

import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.uibinder.client.UiHandler;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Widget;

public class HowToHelp extends Composite {

interface HowToHelpUiBinder extends UiBinder<Widget, HowToHelp> {
}

private static HowToHelpUiBinder uiBinder = GWT
.create(HowToHelpUiBinder.class);

@UiField
Button btn;

public HowToHelp() {
initWidget(uiBinder.createAndBindUi(this));
}

@UiHandler("btn")
void handleClick(ClickEvent e) {
Window.alert("Hello, AJAX");
}

}

Window.alert("Hello, AJAX"); 永远不会被调用。我完全按照官方 GWT 上传递的内容进行操作:http://www.gwtproject.org/doc/latest/DevGuideUiBinder.html

有一个完整的项目,有一些错误 zip

最佳答案

从链接的 zip 中,问题中缺少代码:

package source.client;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.RootPanel;

public class UiHandlerTest implements EntryPoint {

@Override
public void onModuleLoad() {
RootPanel.getBodyElement().appendChild(new TheHandlerTest("My Button").getElement());

}

}

问题是您将一个小部件添加到另一个小部件中,而没有实际执行其中的添加部分;)。相反,您将 uibinder-widget 的内容附加到 RootPanel 小部件的内容。

相反,这样做(它更短/更简单,并且不会有这个错误):

RootPanel.get().add(new TheHandlerTest("My Button"));

关于java - GWT @UiHandler 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29628399/

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