我的代码如下:我看到在运行应用程序时,即使没有单击adminLink,也会调用loadWidget方法。这不是我想要的,但我不确定是什么导致了这个问题。请指教
public class LoginModule implements EntryPoint {
LoginPopup loginPopup;
private class LoginPopup extends PopupPanel {
public LoginPopup() {
super(true);
}
public void loadWidget(){
System.out.println("I am called 1");
CommonUi cUi = new CommonUi();
//#342 moved code to common area
FormPanel loginForm = cUi.getLoginFormUi();
setWidget(loginForm);
}
}
@Override
public void onModuleLoad() {
//#251 improved login popup ui.
final Anchor adminLink = new Anchor("User Login");
// final Label adminLink = new Label("User Login");
adminLink.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
// Instantiate the popup and show it.
loginPopup = new LoginPopup();
loginPopup.loadWidget();
loginPopup.showRelativeTo(adminLink);
loginPopup.show();
}
});
if(RootPanel.get("admin") !=null)
RootPanel.get("admin").add(adminLink);
}
}
答案 0 :(得分:1)
运行开发模式,在Java IDE中的该方法中设置断点,并查看当前堆栈,调用该方法的代码。如果这是您的应用程序中唯一的代码,那么这似乎只能从onClick处理程序调用,所以这是一个问题,找出为什么要调用它。