2015-09-09 3 views
0

Я создаю приложение в javaFX, где я использовал Treeview
с CheckBoxTreeItem String в качестве своих узлов. Я хочу получить все отмеченные элементы в древовидной структуре, как мне это достичь?Получить проверенные элементы в дереве дерева checkbox JavaFx

Heres код:

private TreeView<String> treeView_businessAreas; 
Set<String> businessAreas = config.getBusinessAreas(); 
    CheckBoxTreeItem<String> item = null; 
    for (String businessArea : businessAreas) { 
     item = new CheckBoxTreeItem<>(businessArea); 
     root.getChildren().add(item); 
    } 



    treeView_businessAreas.setRoot(root); 

ответ

1

Это код, который вам нужно:

treeView_businessAreas.getSelectionModel().getSelectedItems().addListener(new ListChangeListener<TreeItem>() { 

    @Override 
    public void onChanged(Change<? extends TreeItem> change) { 
     ObservableList<TreeItem<String>> allSelectedItems = (ObservableList<TreeItem<String>>) treeView_businessAreas.getSelectionModel().getSelectedItems(); 
     //DO SOMETHING HERE WITH THE SELECTED ITEMS 
    } 

}); 
+0

ИМО более целесообразно, чтобы получить выбранные элементы на какой-то кнопки действия, вместо того, чтобы при каждом изменении выбранного Предметы. –

+0

Не имеет значения. Важна только часть 'treeView_businessAreas.getSelectionModel(). GetSelectedItems()'. Остальное - это, например, цели. –

+0

Тем не менее он _may_ вводит в заблуждение OP. –