目前我正在努力适应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())
}我该怎么做呢?
问候Laura (我还不是一个有经验的程序员。所以,请注意,当您尝试回答:D) THX时
发布于 2013-01-17 20:23:31
要访问button.setText(),您必须先访问button。因此,您的PageMenu.ui.xml必须具有以下内容:
<gwt:Button ui:field="button" />并且您的PageMenu.java必须有字段声明:
@UiField
Button button;为PageMenu (在MainMenu)和按钮(在PageMenu)实现getters,然后您可以执行以下操作:
public void onModuleLoad()
{
MainMenu mainmenu = new MainMenu();
RootPanel.get().add(this.mainmenu);
mainmenu.getPageMenu().getButton().setText("What you want.");
}发布于 2013-01-17 22:51:56
你必须创建两个访问器:
PageMenu.java
您现在可以使用以下命令调用它
mainMenu.getPageMenu().getButton().setText("your text");https://stackoverflow.com/questions/14377534
复制相似问题