2012-12-13 9 views
15

Ho creato la vista ad albero in javafx2. ho bisogno di scrivere l'evento per ottenere il nome nodo cliccato.Elemento oggetto selezionare evento in javafx2

pls fammi sapere come farlo?

+0

Il post http: // stackoverflow.com/questions/15792090/javafx-treeview-item-action-event/26714930#26714930 mostra come gestire i clic del mouse. – Alexandre

risposta

36

utilizzare ChangeListener.

codice di esempio:

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

versione leggermente aggiornata

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

Come rendere un albero non selezionato? Voglio dire che ho treeitem all'interno di un treeitem quindi voglio solo il treeitem interno per essere selezionato – viper

11

versione leggermente più aggiornata, utilizzando lambda che pulisce su una punta:

treeView.getSelectionModel() 
     .selectedItemProperty() 
     .addListener((observable, oldValue, newValue) -> System.out.println("Selected Text : " + newValue.getValue())); 
Problemi correlati