By using
'setTableMenuButtonVisible' method of TreeTableView widget, you can show or
hide table columns.
TreeTableViewApp.java
TestFX.java
Ex
treeTableView.setTableMenuButtonVisible(true);
This is
continuation to my previous application, I would recommend you to go through my
previous application for detailed information.
Friend.java
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(true); 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); } }
As you see
the output, by clicking on the ‘+’ button, you can able to see the columns
‘First Name’, ‘Last Name’ and ‘Email’. You can able to add (or) removing
columns using this ‘+’ widget.
No comments:
Post a Comment