NatTable排序后选中单元格获取为空致编辑失效问题求助
NatTable排序后单元格随机无法编辑问题
- 正常选中单元格并输入内容时,可正常编辑单元格。
- 执行以下代码对2-3列进行默认排序后:
natTable.doCommand(new SortColumnCommand(sortHeaderLayer, i, true, sortColumn.getSortDirection())); - 出现异常现象:首次或前几次选中单元格输入可正常编辑,之后会随机出现无法编辑的情况。
- 调试发现:几次成功编辑后,
selectionLayer.getSelectedCells()返回空集合,但界面上单元格仍显示为选中状态。 - 单元格编辑触发逻辑在
ActivateEditorAction.run()中,当同步块的else分支调用isSelectionAndTypedKeyValidForEditing()时,选中单元格集合为空,且该问题一旦出现就会持续存在。
isSelectionAndTypedKeyValidForEditing()函数代码翻译
private boolean isSelectionAndTypedKeyValidForEditing() { // 检查是否存在选中单元格 if (this.selectionLayer.getSelectedCells().isEmpty()) { return false; } // 检查是否为单个单元格选中状态 if (this.selectionLayer.getSelectedCells().size() != 1) { return false; } // 获取选中的单元格对象 ILayerCell cell = this.selectionLayer.getSelectedCells().iterator().next(); // 检查该单元格是否允许编辑 if (!cell.isEditable()) { return false; } // 检查触发事件的按键是否为可编辑的有效字符键(排除功能键) KeyEvent event = this.event; if (event.character == 0) { return false; } return true; }
内容的提问来源于stack exchange,提问作者Ashray M V
相关产品推荐
相关产品推荐

