2015-03-01 3 views
0

Я пытаюсь установить дочерние элементы для root. Но как-то мой корень пуст, хотя treeNodes загружен и имеет значение в нем.set TreeItem to TreeTableView в JavaFX

TreeItem<String> treeNodes = null; 
    for (int i = 0; i < rowSize; i++) { 

     treeNodes 
     = new TreeItem<>(rows.get(i)); 
     //rows.get(i) 
     System.out.println(treeNodes);//is initialized 

     root.getChildren().setAll(treeNodes); 
     System.out.println(root);//is emty 
    } 
final TreeTableView<String> treeTableView = new TreeTableView<>(
      root); 
TreeTableColumn<String, TreeMap<String, ArrayList<String>>> firstColumn = new TreeTableColumn<>(); 
    treeTableView.getColumns().add(firstColumn);// Tree column but no item in it, just an arrow facing down. 
+0

Вам нужен [значение ячейки завода] (http://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/TreeTableColumn.html#cellValueFactoryProperty) для вашего колонка; ваши типы выглядят неправильно, но я не знаю, как ваша фабрика значений ячейки будет генерировать 'TreeMap >' из 'String'. –

+0

Я сделаю это. на самом деле я подумал, что можно сохранить treemap key = value в treeitem и установить значение как имя каждого узла, а затем пройти ключи для других вычислений. – Iman

+0

Я думаю, что ReadOnlyMapProperty - это то, что мне нужно. но я не уверен, как его использовать. – Iman

ответ

0
List<String> functions = new ArrayList<String>(dc.getNameOfFunction()); 
TreeItem<String> root = new TreeItem<>("Functions"); 
for (Entry<String, String> entryRow : dc.getSortedfuncAll().entrySet()) { 
     root.getChildren().add(new TreeItem<String>(entryRow.getValue())); 

    } 
final TreeTableView<String> treeTableView = new TreeTableView<>(root); 
Смежные вопросы