0

我有一个使用 UiBinder 的 TabLayoutPanel 的 GWT 应用程序。我有 UiBinder 作为:

<!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:TabLayoutPanel ui:field="tabLayoutPanel" barUnit="em" barHeight="3">
        <g:tab>
            <g:header>Welcome</g:header>
        </g:tab>
        <g:tab>
            <g:header>Login</g:header>
        </g:tab>
    </g:TabLayoutPanel>
</ui:UiBinder>

并且查看代码为:

public class MyView extends Composite {
    interface MyUiBinder extends UiBinder<Widget, MyView> {}
    private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class);

    @UiField TabLayoutPanel tabLayoutPanel;

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

此代码总是因错误而崩溃:

    Caused by: java.lang.RuntimeException: Deferred binding failed for 'com.mycompany.MyView' (did you forget to inherit a required module?) at 
com.google.gwt.dev.shell.GWTBridgeImpl.create(GWTBridgeImpl.java:53) at
 com.google.gwt.core.shared.GWT.create(GWT.java:57) at 
com.google.gwt.core.client.GWT.create(GWT.java:85)

有人可以告诉我出了什么问题。

我确实通过将它添加到 RootLayoutPanel 中。

非常感谢

4

2 回答 2

0

根据TablayoutPanel文档

此小部件仅在标准模式下工作,这要求运行它的 HTML 页面具有显式声明

您的 DOCTYPE 似乎有问题host html page

请验证您的主机 HTML 页面是否仅具有标准模式的文档类型?尝试更改<!DOCTYPE html>.

并建议交叉检查和TabPanel的示例

于 2013-03-22T17:31:42.767 回答
0

如果包含MyView该类的包未source在您的*.gwt.xml.

于 2013-03-23T00:56:07.723 回答