我正在使用小部件和xml编写简单的GWT代码。该代码被格式化为一个嵌套的层次结构。
Demo类是入口点:
public class Demo4 implements EntryPoint {
public void onModuleLoad() {
UserDashBoard user = new UserDashBoard();
RootPanel.get().add(user);
}
}
班级库存和班级天气是正常的小部件:
public class Stock extends Composite{
@UiField Button stocks;
public Stock() {
initWidget(stocks);
}
@UiHandler("stocks")
void handleClick(ClickEvent e) {
Window.alert("The price of stocks is xxx");
}
}
public class Weather extends Composite{
@UiField Button weather;
public Weather() {
initWidget(weather);
}
@UiHandler("weather")
void handleClick(ClickEvent e) {
Window.alert("Weather is xxx");
}
}
我将UserDashBoard类设为一个Home小部件,其中包含所有其他小部件,并将其与xml文件绑定。
public class UserDashBoard extends Composite{
private static final UserDashBoardUiBinder uiBinder =
GWT.create(UserDashBoardUiBinder.class);
@UiTemplate("UserDashBoardUiBinder.ui.xml")
interface UserDashBoardUiBinder extends UiBinder<Widget, UserDashBoard> {}
public UserDashBoard() {
initWidget(uiBinder.createAndBindUi(this));
}
}
<!-- UserDashboard.ui.xml -->
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'
xmlns:my='urn:import:come.my.app.client' >
<g:HTMLPanel>
<my:Weather ui:field="weather"/>
<my:Stock ui:field="stocks"/>
</g:HTMLPanel>
</ui:UiBinder>
这里的主要问题是当我运行项目时,我希望有两个按钮,但在网站上却找不到任何按钮,有人知道这里出了什么问题吗?
实际上,我是通过GWT文档学习GWT的,有趣的是GWT文档提供了许多有关UiBinder的解释,但没有发布任何完整的项目示例代码,这使我对实际的代码结构感到困惑。