By using
'setShowRoot' method of TreeTableView widget, you can hide/show the root
element.
Friend.java
TreeTableViewApp.java
TestFX.java
Ex
treeTableView.setShowRoot(false);
If you
enable the root element for TreeTableView widget, the output looks like below.
If you
disable the root element, you can able to see below widget.
Find the
below working application.
package com.sample.model; public class Friend { private String firstName; private String lastName; private String email; public Friend(String fName, String lName, String email) { this.firstName = fName; this.lastName = lName; this.email = email; } public String getFirstName() { return firstName; } public String getLastName() { return lastName; } public String getEmail() { return email; } public void setFirstName(String firstName) { this.firstName = firstName; } public void setLastName(String lastName) { this.lastName = lastName; } public void setEmail(String email) { this.email = email; } }
TreeTableViewApp.java
package com.sample.demos; import java.util.Arrays; import java.util.List; import com.sample.model.Friend; 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.TreeTableView; import javafx.scene.layout.StackPane; import javafx.stage.Stage; public class TreeTableViewApp extends Application { List<Friend> friends = Arrays.asList(new Friend("Hari", "Krishna", "krishna@krishna.com"), new Friend("Bhairava", "beddu", "bhairava@bhairava.com"), new Friend("ahswani", "sharmaSekar", "ashwani@ashwani.com"), new Friend("chandra", "babu", "chandra@babu.com")); @SuppressWarnings("unchecked") @Override public void start(Stage primaryStage) throws Exception { /* Define Root Item */ TreeItem<Friend> rootItem = new TreeItem<>(new Friend("All My Friend list", "", "")); rootItem.setExpanded(true); friends.stream().forEach((friend) -> { rootItem.getChildren().add(new TreeItem<>(friend)); }); TreeTableView<Friend> treeTableView = new TreeTableView<>(rootItem); TreeTableColumn<Friend, String> firstNameColumn = new TreeTableColumn<>("First Name"); firstNameColumn.setPrefWidth(150); firstNameColumn.setCellValueFactory( (TreeTableColumn.CellDataFeatures<Friend, String> param) -> new ReadOnlyStringWrapper( param.getValue().getValue().getFirstName())); TreeTableColumn<Friend, String> lastNameColumn = new TreeTableColumn<>("Last Name"); lastNameColumn.setPrefWidth(150); lastNameColumn.setCellValueFactory( (TreeTableColumn.CellDataFeatures<Friend, String> param) -> new ReadOnlyStringWrapper( param.getValue().getValue().getLastName())); TreeTableColumn<Friend, String> emailColumn = new TreeTableColumn<>("Email"); emailColumn.setPrefWidth(150); emailColumn.setCellValueFactory( (TreeTableColumn.CellDataFeatures<Friend, String> param) -> new ReadOnlyStringWrapper( param.getValue().getValue().getEmail())); treeTableView.getColumns().addAll(firstNameColumn, lastNameColumn, emailColumn); treeTableView.setPrefWidth(250); treeTableView.setShowRoot(false); treeTableView.setTableMenuButtonVisible(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