【发布时间】:2015-09-01 15:04:17
【问题描述】:
我知道TreeCell 对象是由TreeView 使用单元工厂动态生成的。
有没有办法获取当前存在的所有TreeCell 对象的列表?
我想我可以通过修改单元工厂来跟踪它们。如,每当我创建一个新单元格时,将其添加到某个列表中。但是,一旦 TreeView 处理它们(因为它们消失了),我不确定如何从列表中删除单元格。
【问题讨论】:
-
简而言之,不,没有(至少,没有公共 API)。为什么你认为你想这样做? (请注意,当它们消失时,它们通常会被重复使用,而不是被丢弃,但两者都不能保证。)
-
@James_D 有时,我的应用程序需要根据多种因素更改 TreeView 中所有单元格的样式(字体/颜色/等)。这对于新生成的单元格来说没有问题,因为我可以使用所需的样式生成它们,但是对于旧的已经存在的单元格,它们将保留它们创建时的样式,并且需要以某种方式进行更新。
-
所以你的问题真的是:“当单元格显示后属性发生变化时,如何动态更新
TreeCell的样式?”。保存单元列表不是这样做的方法:您应该让单元工厂生成观察适当属性的单元。我建议您编辑您的问题以提出此问题...添加一些代码可能会有所帮助。 -
实际上:如果您要更改 所有 单元格的样式,可能只需更改
TreeView本身的样式类,然后使用您的 CSS 文件以将样式应用于作为TreeView不同类的子节点的单元格。但是你需要解释你真正想要做什么。
标签: java javafx treeview treecell