package treeviewtest; import com.sun.javafx.scene.control.skin.VirtualFlow; import javafx.application.Application; import javafx.collections.ObservableList; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Node; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.TreeCell; import javafx.scene.control.TreeItem; import javafx.scene.control.TreeView; import javafx.scene.layout.HBox; import javafx.scene.layout.VBox; import javafx.stage.Stage; public class TreeViewTest extends Application { TreeView testedControl; int count; @Override public void start(Stage stage) { initTreeView(); Button btnReset = new Button("Reset"); btnReset.setOnAction(new EventHandler() { @Override public void handle(ActionEvent t) { reset(); } }); Button btnShowCellContent = new Button("Show cell content"); btnShowCellContent.setOnAction(new EventHandler() { @Override public void handle(ActionEvent t) { showCellContent(); } }); VBox buttons = new VBox(); buttons.getChildren().addAll(btnReset, btnShowCellContent); HBox root = new HBox(20d); root.getChildren().addAll(testedControl, buttons); Scene scene = new Scene(root, 400, 250); stage.setScene(scene); stage.setTitle(System.getProperty("java.runtime.version") + "; " + System.getProperty("javafx.runtime.version")); stage.show(); } public static void main(String[] args) { launch(args); } private void initTreeView() { testedControl = new TreeView(); reset(); } private void reset() { TreeItem root = new TreeItem("Root_" + count++); testedControl.setRoot(root); for (int i = 0; i < 10; i++) { TreeItem it = new TreeItem("item - " + i); root.getChildren().add(it); } } private void showCellContent() { ObservableList childrenUnmodifiable = testedControl.getChildrenUnmodifiable(); for (Node node : childrenUnmodifiable) { if (VirtualFlow.class.isAssignableFrom(node.getClass())) { VirtualFlow vf = (VirtualFlow) node; int cellCount = vf.getCellCount(); for (int i = 0; i < cellCount; i++) { TreeCell cell = (TreeCell) vf.getVisibleCell(i); TreeItem treeItem = cell.getTreeItem(); System.out.println("cell = " + cell.getText() + "; item = " + ((treeItem == null) ? "" : treeItem) + "; #" + ((treeItem == null) ? "" : treeItem.hashCode())); } } } } }