24

I have created the treeview in javafx2. i need to write the event for getting clicked node name.

pls let me know how to do this?

velsachin
  • 905
  • 2
  • 8
  • 13
  • The post http://stackoverflow.com/questions/15792090/javafx-treeview-item-action-event/26714930#26714930 shows how to handle mouse clicks. – Alexandre Nov 03 '14 at 16:40

3 Answers3

51

use ChangeListener .

Sample code :

 treeView.getSelectionModel().selectedItemProperty().addListener( new ChangeListener() {

        @Override
        public void changed(ObservableValue observable, Object oldValue,
                Object newValue) {

            TreeItem<String> selectedItem = (TreeItem<String>) newValue;
            System.out.println("Selected Text : " + selectedItem.getValue());
            // do what ever you want 
        }

      });
invariant
  • 8,758
  • 9
  • 47
  • 61
15

Slightly more updated version, using lambdas which cleans it up a bit:

treeView.getSelectionModel()
        .selectedItemProperty()
        .addListener((observable, oldValue, newValue) -> System.out.println("Selected Text : " + newValue.getValue()));
Evan Knowles
  • 7,426
  • 2
  • 37
  • 71
14

slightly updated version

treeView.getSelectionModel().selectedItemProperty()
            .addListener(new ChangeListener<TreeItem<String>>() {

                @Override
                public void changed(
                        ObservableValue<? extends TreeItem<String>> observable,
                        TreeItem<String> old_val, TreeItem<String> new_val) {
                    TreeItem<String> selectedItem = new_val;
                    System.out.println("Selected Text : " + selectedItem.getValue());
                    // do what ever you want
                }

            });
MitchBroadhead
  • 811
  • 14
  • 23
  • How to make a treeitem not selected ? I mean I have treeitem inside a treeitem so I want only the inside treeitem to get selected – viper Dec 13 '15 at 19:41