当我选择一个单元格并开始输入任何值时,它会编辑该单元格。
但是当我在默认情况下使用下面的代码对几个列(2到3)进行排序时,
natTable.doCommand(new SortColumnCommand(sortHeaderLayer, i, true, sortColumn.getSortDirection()));
然后选择单元格并开始键入第一次或可能是前几次它编辑,然后它不会。
当我调试代码时,我发现我在几次成功编辑后将选中的单元格设置为空,并且这种情况随机发生,就像有时在1或2或4之后一样。如果编辑成功,则选定的单元格变为空。单元格被选中并且清晰可见,但是在代码中仍然是空的。
ActivateEditorAction.run ()
上面的代码用于在选择时编辑单元格的操作。在同步块的else块中,当我们检查isSelectionAndTypedKeyValidForEditing()时,选中的单元格将作为空来,并不总是,但一旦它开始为空,那么它将一直作为空来,即使选择在表上是可见的。
函数isSelectionAndTypedKeyValidForEditing()的代码
某些事件会导致选择清除。默认情况下,排序会导致这样的事件。
如果您正在使用GlazedLists,您还应该意识到在排序的情况下会触发多个事件。glazedlistsevenlayer试图将这些事件压缩为单个事件,但对于大列表,如果GlazedLists触发事件的时间框架比压缩时间长,仍然可能发生多个事件被触发的情况。
也许你在某个地方遇到了并发问题。没有足够的natable设置信息,而且太多的自定义代码覆盖了默认配置。
除了这些信息之外,这似乎是一个非常具体的问题,取决于您的配置和自定义代码。这似乎比通过Stackoverflow轻松解决要复杂得多。恕我直言,你需要这方面的专业支持。一些项目成员在该领域提供赞助支持。