这不应该让我如此痛苦,但确实如此.这是一个非常奇怪的问题.在GWT应用程序中,我有两个.java文件,login.java和application.java.在login.java中,我正在创建一个用户登录页面,如果验证了用户名和密码,则用户登录到应用程序并且application.java从这里开始.
现在正在申请中.java的onModuleLoad()这就是我从登录页面开始的方式.
public void onModuleLoad() {
Login login = new Login();
login.textBoxUsername.setFocus(true);
RootLayoutPanel.get().add(login);}
Run Code Online (Sandbox Code Playgroud)
这很好用,除了在页面加载时无法将注意力集中在用户名TextBox上的微小问题.我试过了我能想到的东西.但焦点只是没有在TextBox上设置.如果有人可以建议解决方案,请做.非常感谢您的帮助.
解决方案 :(如果它可以帮助任何人面临同样的问题)
final Login login = new Login();
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
public void execute () {
login.textBoxUsername.setFocus(true);
}
});
RootLayoutPanel.get().add(login);
Run Code Online (Sandbox Code Playgroud)
Pet*_*ego 33
尝试使用Scheduler.scheduleDeferred():
public void onModuleLoad() {
Login login = new Login();
Scheduler.get().scheduleDeferred(new Scheduler.ScheduledCommand () {
public void execute () {
login.textBoxUsername.setFocus(true);
}
});
RootLayoutPanel.get().add(login);
}
Run Code Online (Sandbox Code Playgroud)
更新:回答更新以使用Scheduler.get().scheduleDeferred()而不是DeferredCommand,不推荐使用.