2012-12-13 34 views
15

Tôi đã tạo treeview trong javafx2. tôi cần phải viết sự kiện để nhận được tên nút được nhấp.Sự kiện chọn mục cây trong javafx2

hãy cho tôi biết cách thực hiện việc này?

+0

Các bài http: // stackoverflow.com/questions/15792090/javafx-treeview-item-action-event/26714930#26714930 cho biết cách xử lý các nhấp chuột. – Alexandre

Trả lời

36

sử dụng ChangeListener.

Mẫu mã:

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 
     } 

     }); 
12

phiên bản cập nhật hơi

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 
       } 

      }); 
+0

Làm thế nào để tạo một cây không được chọn? Ý tôi là tôi có cây trong cây, vì vậy tôi chỉ muốn cây bên trong được chọn – viper

11

phiên bản Hơi cập nhật hơn, sử dụng lambdas đó làm sạch nó lên một chút:

treeView.getSelectionModel() 
     .selectedItemProperty() 
     .addListener((observable, oldValue, newValue) -> System.out.println("Selected Text : " + newValue.getValue())); 
Các vấn đề liên quan