当我尝试设置新图像时,我无法动态更新 TreeView 项目图形:
ImageView imgViesw = new ImageView(new Image(DataTabs.class.getResource("/images/Misc-Database-3-icon.png").toExternalForm()));
treeItem.setGraphic(null);
treeItem.setGraphic(imgViesw);
首先,我为树节点使用自定义图形生成包含项的树视图。这很好用。
然后我使用 JavaFX 服务迭代树节点并根据某些条件(活动/非活动)更改图标。
但是图像不会更新。
我使用 Java 8u40b21。这是一个已知的错误吗?
在TreeItem
上设置新图形后,刷新TreeView
。它对我有用。
treeItem.setGraphic(imgViesw);
myTreeView.refresh();
我相信您必须为树视图创建自定义单元工厂来布局组件(设置图形)。
请参阅实现单元工厂:
http://docs.oracle.com/javafx/2/ui_controls/tree-view.htm
我认为正在发生的事情是您确实更改了图形,但是紧接着树视图的默认单元格工厂会重新创建树项的树单元格并显示它。