TreeView
填充了ProgressIndicator
s,而事情正在发生,但没有阻止线程,使用单元工厂?TreeItem.setGraphic()
与TreeCell.setGraphic()
的区别如何?TreeItem
时,我需要将图片设置为ProgressIndicator
,但我不确定在创建TreeItem
时是否应该这样做TreeCell.updateItem
被工厂抛弃。TreeItem.setGraphic
只是一种便利,我应该从updateItem
内找出问题所在我正在做文件资源管理器示例。 TreeView
中的每个项目的值都设置为sun.nio.fs.WindowsPath
,并通过继承TreeItem
来实现。我重写了isLeaf()
和getChildren()
。当我没有插入网络时,问题是isLeaf()
在网络驱动器上需要很长时间。
所以这就是我正在创建一个带路径值的新树项目(不使用单元工厂):
isRegularFile()
启动新线程(使用Clojure期货)检查路径值是否为路径或文件。以后可以在取消引用未来时获得此结果。TreeItem
衍生物的实例(使用Clojure代理)。setGraphic()
在新的TreeItem
个实例上致电ProgressIndicator()
。addEventHandler()
,这些函数根据展开或折叠更改图形。 / LI>
TreeItem
的新实例(从步骤2开始)。这有效,并且在isLeaf
运行时可以在每个网络驱动器上放置一个swirly图形。但是当TreeItem和TreeCell似乎都有setGraphic()
函数时,我不确定如何做到这一切;我不确定谁拥有"什么。我认为TreeView
拥有项目和单元格,并且在setGraphic()
上调用TreeItem
以某种方式引用默认单元格的图形,而不使用自定义单元格工厂。
我需要弄清楚如何从单元格工厂updateItem()
等访问isLeaf值。