1

現在、GWT と UiBinder に慣れようとしています。しかし、私はこの問題を解決できません。私が何を意味するかを示す例:

MainMenu.ui.xml

<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:gwt="urn:import:com.google.gwt.user.client.ui" xmlns:my="urn:import:com.wn.webapp.client.UiBinder">

   <gwt:VerticalPanel>
     <my:TopMenu/>
     <gwt:VerticalPanel>
         <gwt:HTMLPanel>
             <gwt:TextBox/>
         </gwt:HTMLPanel>
         <my:ItemList/>
         <my:PageMenu/>
     </gwt:VerticalPanel>
   </gwt:VerticalPanel>
</ui:UiBinder

MainMenu を作成し、そこにいくつかの ui.xml ファイルを埋め込みました。これはうまくいきます。ウェブサイトはよさそうだ。

しかし、どうすればこれを行うことができますか? これは、 MainMenu.ui.xml に埋め込んだ PageMenu.ui.xml ファイルのコードです。

public class PageMenu extends Composite{

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

  interface PageMenuUiBinder extends UiBinderWidget, PageMenu{}

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

  public void setButtonText(ArrayListString textIds){
       //doessomething
  }
}

今、私は元に電話したいです。onModuleLoad() の setButtonText() メソッド。

public void onModuleLoad()
{
    MainMenu mainmenu = new MainMenu();
    RootPanel.get().add(this.mainmenu);
    // call it here (setButtonText())
}

これどうやってするの?

こんにちはローラ(私はまだそれほど経験豊富なプログラマーではありません。答えようとするときは、そのことに注意してください:D)THX

4

2 に答える 2

0

にアクセスするには、最初button.setText()の にアクセスできる必要があります。buttonしたがって、次のPageMenu.ui.xmlようなものが必要です。

<gwt:Button ui:field="button" />

PageMenu.java にはフィールド宣言が必要です。

@UiField
Button button;

PageMenu (MainMenu) とボタン (PageMenu) の getter を実装すると、次のことができます。

public void onModuleLoad()
{
    MainMenu mainmenu = new MainMenu();
    RootPanel.get().add(this.mainmenu);
    mainmenu.getPageMenu().getButton().setText("What you want.");
}
于 2013-01-17T12:23:30.800 に答える
0

2 つのアクセサーを作成する必要があります。

  • PageMenu.java の getButton()

  • MainMenu.java の getPageMenu()

あなたは今それを呼び出すことができます

mainMenu.getPageMenu().getButton().setText("your text");
于 2013-01-17T14:51:56.190 に答える