In this
post, I am going to show you how to create TreeTableView.
TestFX.java
Below step
by step procedure explains how to create TreeTableView widget.
Step 1: Create TreeItems.
/* Define Root Item */
TreeItem<String>
rootItem = new TreeItem<>("College");
rootItem.setExpanded(true);
/* Defile 1st level child
items */
TreeItem<String>
physicsDepartment = new TreeItem<>("Physics Department");
TreeItem<String>
chemistryDepartment = new TreeItem<>("Chemistry Department");
TreeItem<String>
mathsDepartment = new TreeItem<>("Maths Department");
/* Add items to root item */
rootItem.getChildren().addAll(physicsDepartment,
chemistryDepartment, mathsDepartment);
/* Adding Physics faculty details
to physics department */
TreeItem<String>
physicsFaculty1 = new TreeItem<>("Srinivasa Rao");
TreeItem<String>
physicsFaculty2 = new TreeItem<>("Madavi Latha");
physicsDepartment.getChildren().addAll(physicsFaculty1,
physicsFaculty2);
physicsDepartment.setExpanded(true);
/* Adding chemistry faculty
details to physics department */
TreeItem<String>
chemistryFaculty1 = new TreeItem<>("Naga Veni");
TreeItem<String>
chemistryFaculty2 = new TreeItem<>("Raghava Rao");
chemistryDepartment.getChildren().addAll(chemistryFaculty1,
chemistryFaculty2);
chemistryDepartment.setExpanded(true);
/* Adding maths faculty
details to maths department */
TreeItem<String>
mathsFaculty1 = new TreeItem<>("Venkata Anjaneyulu");
TreeItem<String>
mathsFaculty2 = new TreeItem<>("Rama Krishna");
mathsDepartment.getChildren().addAll(mathsFaculty1,
mathsFaculty2);
mathsDepartment.setExpanded(true);
Step 2: Create TreeTableView widget by
passing rootItem to the TreeTableView constructor.
TreeTableView<String>
treeTableView = new TreeTableView<>(rootItem);
Step 3: Create TreeTableColumn widget and add
it to treeTableView.
TreeTableColumn<String,
String> column = new TreeTableColumn<>("Column");
column.setPrefWidth(250);
column.setCellValueFactory((CellDataFeatures<String,
String> p) -> new ReadOnlyStringWrapper(p.getValue().getValue()));
treeTableView.getColumns().add(column);
Find the
below working application.
TreeTableViewApp.java
package com.sample.demos; import javafx.application.Application; import javafx.beans.property.ReadOnlyStringWrapper; import javafx.scene.Scene; import javafx.scene.control.TreeItem; import javafx.scene.control.TreeTableColumn; import javafx.scene.control.TreeTableColumn.CellDataFeatures; import javafx.scene.control.TreeTableView; import javafx.scene.layout.StackPane; import javafx.stage.Stage; public class TreeTableViewApp extends Application { @SuppressWarnings("unchecked") @Override public void start(Stage primaryStage) throws Exception { /* Define Root Item */ TreeItem<String> rootItem = new TreeItem<>("College"); rootItem.setExpanded(true); /* Defile 1st level child items */ TreeItem<String> physicsDepartment = new TreeItem<>("Physics Department"); TreeItem<String> chemistryDepartment = new TreeItem<>("Chemistry Department"); TreeItem<String> mathsDepartment = new TreeItem<>("Maths Department"); /* Add items to root item */ rootItem.getChildren().addAll(physicsDepartment, chemistryDepartment, mathsDepartment); /* Adding Physics faculty details to physics department */ TreeItem<String> physicsFaculty1 = new TreeItem<>("Srinivasa Rao"); TreeItem<String> physicsFaculty2 = new TreeItem<>("Madavi Latha"); physicsDepartment.getChildren().addAll(physicsFaculty1, physicsFaculty2); physicsDepartment.setExpanded(true); /* Adding chemistry faculty details to physics department */ TreeItem<String> chemistryFaculty1 = new TreeItem<>("Naga Veni"); TreeItem<String> chemistryFaculty2 = new TreeItem<>("Raghava Rao"); chemistryDepartment.getChildren().addAll(chemistryFaculty1, chemistryFaculty2); chemistryDepartment.setExpanded(true); /* Adding maths faculty details to maths department */ TreeItem<String> mathsFaculty1 = new TreeItem<>("Venkata Anjaneyulu"); TreeItem<String> mathsFaculty2 = new TreeItem<>("Rama Krishna"); mathsDepartment.getChildren().addAll(mathsFaculty1, mathsFaculty2); mathsDepartment.setExpanded(true); TreeTableView<String> treeTableView = new TreeTableView<>(rootItem); TreeTableColumn<String, String> column = new TreeTableColumn<>("Column"); column.setPrefWidth(250); column.setCellValueFactory((CellDataFeatures<String, String> p) -> new ReadOnlyStringWrapper(p.getValue().getValue())); treeTableView.getColumns().add(column); treeTableView.setPrefWidth(250); treeTableView.setShowRoot(true); StackPane stackPane = new StackPane(); stackPane.getChildren().add(treeTableView); primaryStage.setScene(new Scene(stackPane)); primaryStage.setTitle("Tree Table View Example"); primaryStage.setWidth(900); primaryStage.setHeight(500); primaryStage.show(); } }
TestFX.java
package com.sample.demos; import javafx.application.Application; public class TestFX { public static void main(String args[]) { Application.launch(TreeTableViewApp.class, args); } }
No comments:
Post a Comment