java只获取childItem的children的值

时间:2017-07-27 11:08:47

标签: java javafx treeview

显示我做过的一个treeItem孩子:

  System.out.println(
treeView.getSelectionModel().getSelectedItem().getChildren());

输出:

[TreeItem [ value: host1 ], TreeItem [ value: port1 ], TreeItem [ value: user1 ], TreeItem [ value: bd1 ]]

但是,我只希望得到值为('host1', 'port1'..)的结果。

那么我该如何操纵输出呢?

2 个答案:

答案 0 :(得分:1)

使用java8流,你可以很容易地做到:

List<TreeItem> children = treeView.getSelectionModel().getSelectedItem().getChildren();
List<String> childrenValues = children.stream() // get stream from list
    .map(TreeItem::getValue) // equal to: item -> item.getValue()
    .collect(Collectors.toList()); // collect all to a single list
System.out.println(values);

哪个应打印所需的结果

答案 1 :(得分:1)

getChildren()会返回ObservableList<TreeItem<T>>个对象。这实际上是一个列表。如果只想打印值,则应迭代此列表并使用TreeItem方法打印每个getValue()对象的值。

List<TreeItem<Object>> children = 
treeView.getSelectionModel().getSelectedItem().getChildren();

for (TreeItem<Object> child : children) {
    System.out.println(child.getValue())
}