更新TreeView项目图形

时间:2015-01-16 12:38:35

标签: javafx javafx-8

当我尝试设置新图像时,我无法动态更新TreeView项目图形:

ImageView imgViesw = new ImageView(new Image(DataTabs.class.getResource("/images/Misc-Database-3-icon.png").toExternalForm()));

treeItem.setGraphic(null);
treeItem.setGraphic(imgViesw);

首先,我使用自定义图形为树节点生成带有项目的TreeView。这很有效。

然后我使用JavaFX服务迭代树节点并根据某些条件(活动/非活动)更改图标。

但图片未更新。

我使用的是Java 8u40b21。这是一个已知的错误吗?

2 个答案:

答案 0 :(得分:1)

TreeItem上设置新图片后,请刷新TreeView。它对我有用。

treeItem.setGraphic(imgViesw);    
myTreeView.refresh();

答案 1 :(得分:0)

我相信你将不得不为树视图创建一个自定义单元工厂来布局组件(设置图形)。

请参阅实施细胞工厂:

http://docs.oracle.com/javafx/2/ui_controls/tree-view.htm

我认为发生的事情是您确实更改了图形,但是在树视图的默认单元工厂重新创建树项目的树状单元并显示之后,立即更改图形。