Gxt焦点管理

Zal*_*aka 5 javascript java gwt focus gxt

我正在使用Gxt.我需要将焦点设置到页面上的第一个启用字段.但我有很多页面,我想集中这种行为.Gxt中缺少文档,所以我想知道是否有人遇到过这样的问题并且可以帮助我.

现在它在每个组件的类中都是这样的

protected void resetFocus() {
    combobox.focus();
}

@Override
public void show() {
    super.show();
    resetFocus();
}
Run Code Online (Sandbox Code Playgroud)

我找到了com.extjs.gxt.ui.client.aria.FocusManager但绝对不清楚我该如何使用它.或者也许根据焦点,当它们进入组件时也可以获得字段链.我可以将resetFocus方法移动到父类.

像这样的Smth

protected void resetFocus() {
    *getFocusChain().get(0).focus();*
}
Run Code Online (Sandbox Code Playgroud)

Yus*_* K. 2

渲染一些延迟后聚焦所以你必须使用Scheduler.get().scheduleDeferred方法。或者DeferredCommand在 GWT 1.7 或更早版本上。

使用示例:

Scheduler.get().scheduleDeferred(new ScheduledCommand() {

    @Override
    public void execute() {
        widget.focus();
        widget.el().focus();
        widget.getElement().focus();
    }
});
Run Code Online (Sandbox Code Playgroud)