我正在尝试在FXML中配置TreeView的根节点:
<TreeView fx:id="treeView" prefHeight="-1.0" prefWidth="-1.0" VBox.vgrow="ALWAYS">
<TreeItem expanded="false" value="Root" fx:id="rootItem" graphic="/icons/icon_folder.png" />
</TreeView>
有一个名为graphic
的属性需要Node
,而不是我上面提供的String
。
如何在FXML
中为其指定一个节点,该节点将代表存储在我的资源中的图像/ icons_ icon_folder.png?
在Java中,我可以执行以下操作:
final Node iconFolder = new ImageView(
new Image(TreeArchiveSuite.class.getResourceAsStream("/icons/icon_folder.png"))
);
然后我可以在根节点上设置它:
rootItem.setGraphic(iconFolder);
但是,我希望能够仅从FXML执行此操作。
答案 0 :(得分:2)
在找到关于使用FXML为graphic
控件设置Button
属性的 similar question 后,我能够通过以下FXML标记实现我的目标:
<TreeItem expanded="false" value="Root" fx:id="rootItem">
<graphic>
<ImageView>
<image>
<Image url="icons/icon_folder.png" />
</image>
</ImageView>
</graphic>
</TreeItem>