获取selectionLayer.getSelectedCells()为空,但不总是



当我选择一个单元格并开始输入任何值时,它会编辑该单元格。

但是当我在默认情况下使用下面的代码对几个列(2到3)进行排序时,

natTable.doCommand(new SortColumnCommand(sortHeaderLayer, i, true, sortColumn.getSortDirection()));

然后选择单元格并开始键入第一次或可能是前几次它编辑,然后它不会。

当我调试代码时,我发现我在几次成功编辑后将选中的单元格设置为空,并且这种情况随机发生,就像有时在1或2或4之后一样。如果编辑成功,则选定的单元格变为空。单元格被选中并且清晰可见,但是在代码中仍然是空的。

ActivateEditorAction.run ()

上面的代码用于在选择时编辑单元格的操作。在同步块的else块中,当我们检查isSelectionAndTypedKeyValidForEditing()时,选中的单元格将作为空来,并不总是,但一旦它开始为空,那么它将一直作为空来,即使选择在表上是可见的。

函数isSelectionAndTypedKeyValidForEditing()的代码

某些事件会导致选择清除。默认情况下,排序会导致这样的事件。

如果您正在使用GlazedLists,您还应该意识到在排序的情况下会触发多个事件。glazedlistsevenlayer试图将这些事件压缩为单个事件,但对于大列表,如果GlazedLists触发事件的时间框架比压缩时间长,仍然可能发生多个事件被触发的情况。

也许你在某个地方遇到了并发问题。没有足够的natable设置信息,而且太多的自定义代码覆盖了默认配置。

除了这些信息之外,这似乎是一个非常具体的问题,取决于您的配置和自定义代码。这似乎比通过Stackoverflow轻松解决要复杂得多。恕我直言,你需要这方面的专业支持。一些项目成员在该领域提供赞助支持。

最新更新