TreeView包含不同的类型

时间:2016-11-25 05:05:25

标签: java javafx hyperlink treeview

我通过使用CheckBoxTreeItem在一个角落支持自己,因为我想要它提供的功能(如果选中父级则检查所有孩子的能力),但是我父母有一个{ {1}}作为图形,而我的孩子有Hyperlink作为图形。当Strings包含两种不同类型(TreeViewCheckBoxTreeItem<Hyperlink>)时,Java不喜欢它。我的选择是创建一个接受泛型类型的CheckBoxTreeItem<String>,或者找到一种将TreeView显示为纯文本的方法。我已经使用通用类型选项进行了几个小时的修改,但似乎无法使其工作。我更倾向于修改超级链接,但无论如何我都会很乐意接受建议。

1 个答案:

答案 0 :(得分:0)

如果您想添加Node类型,可以使用graphic的{​​{1}}属性。

TreeItem

或者,如果@Override public void start(Stage primaryStage) { CheckBoxTreeItem<String> item = new CheckBoxTreeItem<>(null, new Hyperlink("abc")); CheckBoxTreeItem<String> item2 = new CheckBoxTreeItem<>("Hello World"); CheckBoxTreeItem<String> item3 = new CheckBoxTreeItem<>("42"); item.getChildren().setAll(item2, item3); TreeView<String> treeView = new TreeView<>(item); treeView.setCellFactory(CheckBoxTreeCell.forTreeView()); Scene scene = new Scene(treeView); primaryStage.setScene(scene); primaryStage.show(); } 值包含TreeItem,则需要稍微修改Node updateItem方法:

CheckBoxTreeCell