Teemu Harju
Teemu Harju

Reputation: 39

How to hide or close sections of text in javafx

Hi im trying to have text that has "children" text that can be sectioned off/hidden by pressing the arrow in the picture. So if the arrow points down it should open more information and if its point right it should close it. I don't know the name for this method or functionality so i dont know how to google the right class for this. It would be helpfull if someone could help and tell what javafx class is able to have this effect.

Sorry if the title is not good. I dont know the right word that im trying to achieve from the picture.

enter image description here

Upvotes: 0

Views: 105

Answers (2)

Giovanni Contreras
Giovanni Contreras

Reputation: 2579

TreeView

treeview example

You can use TreeView like nested list in html. When you initialize a TreeView object you need to provide generic type <t>, <String> in this case . then , every TreeView needs a root you can pass a TreeItem object to Treeview in setRoot() method. Root can have its own TreeItem children, every children can have children too , and so on. a TreeItem with no child is called "leaf" and TreeItems with children is called "branch" . Like real tree .

This is a single javaFX app you can try

public class App extends Application {
    
    @Override
    public void start(Stage stage) {
        TreeView<String> treeView = new TreeView<>();
        TreeItem<String> rootItem = new TreeItem<>("lore ipsum");
        treeView.setRoot(rootItem);
        TreeItem<String> leafItem = new TreeItem<>("dolor sit amet, consectetur adipiscing elit");
        TreeItem<String> leafItem1 = new TreeItem<>(" Aliquam justo ipsum, venenatis eget congue eu,");
        TreeItem<String> leafItem2 = new TreeItem<>("imperdiet a augue. Mauris elementum risus leo");
        TreeItem<String> leafItem3 = new TreeItem<>("id pharetra nulla mattis ut. Integer pulvinar nisl in velit ultrices");
        TreeItem<String> leafItem4 = new TreeItem<>("ac semper ante porttitor. Aenean vel ligula ipsum. Lorem ipsum dolor sit amet,");
        TreeItem<String> leafItem5 = new TreeItem<>("consectetur adipiscing elit. Mauris efficitur dapibus varius.");
        TreeItem<String> leafItem6 = new TreeItem<>("nteger orci ipsum, egestas sed justo sit amet, fermentum semper libero. ");
        TreeItem<String> branch = new TreeItem<>("lore ipsum II");
        TreeItem<String> branch1 = new TreeItem<>("lore ipsum III");
        TreeItem<String> branch2 = new TreeItem<>("lore ipsum IV");
        rootItem.getChildren().addAll(leafItem, leafItem1, leafItem2, leafItem3, leafItem4, leafItem5, leafItem6, branch, branch1, branch2);
        branch.getChildren().addAll(
                new TreeItem<>("dolor sit amet, consectetur adipiscing elit"),
                new TreeItem<>(" Aliquam justo ipsum, venenatis eget congue eu,"),
                new TreeItem<>("imperdiet a augue. Mauris elementum risus leo"),
                new TreeItem<>("id pharetra nulla mattis ut. Integer pulvinar nisl in velit ultrices"),
                new TreeItem<>("ac semper ante porttitor. Aenean vel ligula ipsum. Lorem ipsum dolor sit amet,"),
                new TreeItem<>("consectetur adipiscing elit. Mauris efficitur dapibus varius."),
                new TreeItem<>("nteger orci ipsum, egestas sed justo sit amet, fermentum semper libero. "));
        branch1.getChildren().addAll(
                new TreeItem<>("dolor sit amet, consectetur adipiscing elit"),
                new TreeItem<>(" Aliquam justo ipsum, venenatis eget congue eu,"),
                new TreeItem<>("imperdiet a augue. Mauris elementum risus leo"),
                new TreeItem<>("id pharetra nulla mattis ut. Integer pulvinar nisl in velit ultrices"),
                new TreeItem<>("ac semper ante porttitor. Aenean vel ligula ipsum. Lorem ipsum dolor sit amet,"),
                new TreeItem<>("consectetur adipiscing elit. Mauris efficitur dapibus varius."),
                new TreeItem<>("nteger orci ipsum, egestas sed justo sit amet, fermentum semper libero. "));
        branch2.getChildren().addAll(
                new TreeItem<>("dolor sit amet, consectetur adipiscing elit"),
                new TreeItem<>(" Aliquam justo ipsum, venenatis eget congue eu,"),
                new TreeItem<>("imperdiet a augue. Mauris elementum risus leo"),
                new TreeItem<>("id pharetra nulla mattis ut. Integer pulvinar nisl in velit ultrices"),
                new TreeItem<>("ac semper ante porttitor. Aenean vel ligula ipsum. Lorem ipsum dolor sit amet,"),
                new TreeItem<>("consectetur adipiscing elit. Mauris efficitur dapibus varius."),
                new TreeItem<>("nteger orci ipsum, egestas sed justo sit amet, fermentum semper libero. "));
        
        stage.setTitle("TreeView");
        Scene scene = new Scene(treeView, 640, 480);
        stage.setScene(scene);
        stage.show();
    }
    
    public static void main(String[] args) {
        launch();
    }
    
}
 

Upvotes: 3

Ali Al-kubaisi
Ali Al-kubaisi

Reputation: 100

Tree View it's What you looking for Here is an example: Javafx TreeView

Upvotes: 1

Related Questions