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

MyViewクラスを含むパッケージがソース パッケージとして定義されていない場合 (sourceタグを使用)、このエラーが発生する可能性があります*.gwt.xml

于 2013-03-23T00:56:07.723 に答える
0

TablayoutPanelのドキュメントに従って

このウィジェットは標準モードでのみ機能します。標準モードでは、ウィジェットを実行する HTML ページに明示的な宣言が必要です。

の DOCTYPE に問題があるようhost html pageです。

ホスト HTML ページに標準モード専用の Doctype があることを確認できますか? を変えてみてください<!DOCTYPE html>

また、クロスチェックとTabPanelのも提案しています。

于 2013-03-22T17:31:42.767 に答える