/* * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. */ package tests; import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.*; import javafx.scene.layout.HBox; import javafx.scene.shape.Rectangle; import javafx.stage.Stage; import javafx.util.Callback; /** * * @author slions */ public class Test extends Application { public static void main(String[] args) { launch(args); } @Override public void start(Stage primaryStage) { // Build some tree final TreeItem rootItem = new TreeItem<>(new MyItem("Root")); final TreeItem item1 = new TreeItem<>(new MyItem("Child1")); final TreeItem item2 = new TreeItem<>(new MyItem("Child2")); final TreeItem item3 = new TreeItem<>(new MyItem("Child3")); final TreeItem item4 = new TreeItem<>(new MyItem("Child4")); final TreeItem item5 = new TreeItem<>(new MyItem("Child5")); final TreeItem item6 = new TreeItem<>(new MyItem("Child6")); final TreeItem item7 = new TreeItem<>(new MyItem("Child7")); final TreeItem item8 = new TreeItem<>(new MyItem("Child8")); final TreeItem item9 = new TreeItem<>(new MyItem("Child9")); final TreeItem item10 = new TreeItem<>(new MyItem("Child10")); final TreeItem item11 = new TreeItem<>(new MyItem("Child11")); final TreeItem item12 = new TreeItem<>(new MyItem("Child12")); final TreeItem item13 = new TreeItem<>(new MyItem("Child13")); final TreeItem item14 = new TreeItem<>(new MyItem("Child14")); final TreeItem item15 = new TreeItem<>(new MyItem("Child15")); final TreeItem item16 = new TreeItem<>(new MyItem("Child16")); final TreeItem item17 = new TreeItem<>(new MyItem("Child17")); final TreeItem item18 = new TreeItem<>(new MyItem("Child18")); final TreeItem item19 = new TreeItem<>(new MyItem("Child19")); final TreeItem item20 = new TreeItem<>(new MyItem("Child20")); rootItem.getChildren().addAll(item1, item2, item3, item4, item5, item6, item7, item8, item9, item10, item11, item12, item13, item14, item15, item16, item17, item18, item19, item20); rootItem.setExpanded(true); final TreeView treeView = new TreeView(rootItem); treeView.setPrefSize(200, 100); treeView.setLayoutX(10); treeView.setLayoutY(10); treeView.setCellFactory(new Callback, TreeCell>() { @Override public TreeCell call(TreeView p) { return new MyTreeCell<>(); } }); final Scene scene = new Scene(new Group(), 800, 500); final Group root = (Group) scene.getRoot(); root.getChildren().clear(); root.getChildren().addAll(treeView); primaryStage.setScene(scene); primaryStage.show(); } class MyTreeCell extends TreeCell { public MyTreeCell() { } @Override public void updateItem(MyItem item, boolean empty) { super.updateItem(item, empty); if (item != null) { final HBox graphic = new HBox(); graphic.getChildren().addAll(new Rectangle(10, 10)); graphic.getChildren().addAll(new Label(item.getText())); setGraphic(graphic); setText(null); } else { setGraphic(null); setText(null); } } } class MyItem { private final String text; public MyItem(String text) { this.text = text; } public String getText() { return text; } @Override public String toString() { return text; } } }