在我的域中,我的对象不断通过一个单独的过程进行更新,我希望propertySheetView显示不断变化的属性。设置当前的实现,以使基础域模型对象是不可变的,因此当它更改时,有一个具有相应ID的新对象。那时,我的节点包装对象已订阅,使用匹配的ID获取更新的对象,并重新创建表(通过CreateSheet()),并使用更新的信息调用SetSheet。这务必始终显示域模型对象的最新版本。

但是,某些属性不是仅读取的,而是可以设置的。我想在编辑属性时以行或表格的更新 /覆盖表锁定表。为了做到这一点,我需要收听编辑启动和结束通话,以便我知道何时可以安全地更新表。

这对于我的应用至关重要;就目前而言,您无法通过在刷新工作表并将其编辑消失之前输入新值。

如果重要的话,我正在使用自定义propertyItorSupport,但默认的Inplaceeditor。

我已经在NetBeans来源进行了很多搜索,但我看不到任何裸露的API设置来聆听这些内容。

SheetCelleditor (org.openide.explorer.propertysheet)公开一个addCelleditorListener方法,但是a)我无法弄清楚我将如何在SheetCelleditor实例上获得处理,b)SheetCelleditor所揭示的方法是编辑和编辑,没有编辑 - 没有开始编辑回调!似乎很愚蠢。由于它们扩展了JTable,因此可忽视的和两种可观的属性也会暴露出该属性,但我也不知道如何处理它们。

我注意到 电池 接口需要该方法 可行的(),据说如果可以编辑单元格,则返回true,因此编辑开始。但同样,这是由不是公共类的SheetCelleditor实现的,我不知道如何获得参考。

感谢您的帮助。

有帮助吗?

解决方案

我能提出的最好的解决方案如下:

创建自定义属性编辑器。使该编辑器实现Inplaceeditor。返回一个文本字段的StringInplaceeditor。将焦点侦听器附加到该文本场。当焦点放在文本字段中时,它正在编辑。否则不是。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top