GWT手机列表设置键盘已选定

GWT手机列表设置键盘已选定,gwt,keyboard,Gwt,Keyboard,我试图根据另一个控件(文本框)中的键盘事件,以编程方式更改手机列表中的“突出显示”项。我可以很好地获取键盘事件,但是当我使用CellList时 int row = getKeyboardSelectedRow() + 1; setKeyboardSelected(row,selected,stealFocus) 这没有任何影响。如果我把注意力放在我的手机列表上,我可以上下移动并突出显示一行。如果我在setKeyboardSelected()方法上为“stealFocus”设置为true,那么它

我试图根据另一个控件(文本框)中的键盘事件,以编程方式更改手机列表中的“突出显示”项。我可以很好地获取键盘事件,但是当我使用CellList时

int row = getKeyboardSelectedRow() + 1;
setKeyboardSelected(row,selected,stealFocus)
这没有任何影响。如果我把注意力放在我的手机列表上,我可以上下移动并突出显示一行。如果我在setKeyboardSelected()方法上为“stealFocus”设置为true,那么它“有效”,除非我真的想把焦点放在文本框上,而不是单元格列表上。我该怎么做?我尝试了fireEvents,将击键发送到手机列表,但这也没有帮助


J

我没有立即的解决方案,但如果我是你,我会在调试模式下逐步浏览
com.google.gwt.user.cellview.client.AbstractCellTable中的
setKeyBoardSelected
。 也许这就是问题所在

if (KeyboardSelectionPolicy.DISABLED == getKeyboardSelectionPolicy()
|| !isRowWithinBounds(index) || columns.size() == 0) {
return;
}

我意识到问题在于,要绘制键盘上选定的项目,必须关注单元格列表。看起来没有办法通过重写方法来修复它。我想我得自己画。虽然我认为有一个渲染方法,但我不确定这是如何工作的。看起来我需要自己渲染,忽略键盘高亮显示功能。如何突出显示特定行?