1
我創建了一個TreeView,應該有不同的圖形樹結構的不同層次。它是一個三層結構,其中根是隱藏的。JavaFX TreeView:setGraphic()爲不同層次的樹項目
的可擴展節點的圖形: http://i.imgur.com/wv00CEi.png
圖形葉節點:
只是在橫向盒標籤。
這是我到目前爲止已經試過,但我得到一個NullPointerException基本上說getTreeView爲空:
CustomTreeCellFactory
public final class CustomTreeCellFactory extends TreeCell<String>{
private TextField textField;
private HBox hBox;
public CustomTreeCellFactory(){
super();
if (getTreeView()==null){
System.out.println("Her er problem");
}
if (getTreeView().getTreeItemLevel(getTreeItem())==1){
try {
hBox = (HBox) FXMLLoader.load(getClass().getResource("/Views/TreCell.fxml"));
} catch (IOException e) {
System.out.println("This didn't work");
e.printStackTrace();
}
}
else if (getTreeView().getTreeItemLevel(getTreeItem())==2){
try {
hBox = (HBox) FXMLLoader.load(getClass().getResource("/Views/TreCellLowestLevel.fxml"));
} catch (IOException e) {
System.out.println("This didn't work");
e.printStackTrace();
}
}
}
代碼段從哪裏設置單元格工廠
TreeView<String> tree = (TreeView) parent.getChildren().get(0);
tree.setRoot(root);
tree.setShowRoot(false);
tree.setEditable(true);
tree.setCellFactory(new Callback<TreeView<String>, TreeCell<String>>() {
@Override
public TreeCell<String> call(TreeView<String> param) {
return new CustomTreeCellFactory();
}
});