2017-04-11 3 views
0

hey ich bin neu in javafx und gui Gebäudewie eine Funktion zu einem treeview Kind assoziieren in javafx

so habe ich eine treeview mit mir und mehrere Wurzeln und jede Wurzel hat mehrere untergeordnete Knoten

@FXML 
TreeView<String> bro; 

TreeItem<String> root=new TreeItem<>("root"); 
TreeItem<String> child = new TreeItem<>("child"); 
TreeItem<String> child2 = new TreeItem<>("child"); 
TreeItem<String> child3 = new TreeItem<>("child"); 
TreeItem<String> child4 = new TreeItem<>("child"); 
TreeItem<String> child5 = new TreeItem<>("child"); 

public void initialize(){ 

root.getChildren().add(child); 
     root.getChildren().add(child2); 
     root.getChildren().add(child3); 
     root.getChildren().add(child4); 
     root.getChildren().add(child5); 
     root.setExpanded(true); 
bro.setRoot(root); 

} 

so, da die treeview gewesen als initialisei mit einem fucntion zuordnen möchte oder binden child2, die ich habe, dass läuft, wenn i

auf child2 klicken
public void openWindow(){ 
    // code to open new window 
} 

jedes Mal child2 geklickt wird würde ich li ke openwindow() Funktion, die ein neues Fenster öffnet sich laufen

ich auch wissen möchten, wenn child2 ausgewählt wird, wenn das möglich ist

, wie kann ich das tun

dank

+0

Jedes Mal, wenn geklickt wird? Oder jedes Mal, wenn es ausgewählt wird? –

+0

geklickt ist was ich will –

Antwort

0

auf Maus reagieren Klicks auf Zellen, eine Zellfabrik auf den TreeView gesetzt, so dass Sie einen Event-Handler zu den Zellen hinzufügen:

bro.setCellFactory(tv -> { 
    TreeCell<String> cell = new TreeCell<String>() { 
     @Override 
     protected void updateItem(String item, boolean empty) { 
      super.updateItem(item, empty); 
      setText(item); 
     } 
    }; 

    cell.setOnMouseClicked(e -> { 
     if (cell.getTreeItem() == child2) { 
      openWindow(); 
     } 
    }); 

    return cell ; 
}); 

Um zu wissen, wann ein Element ausgewählt ist, registrieren Sie einen Listener mit der ausgewählten Elementeigenschaft des Baumauswahlmodells:

Verwandte Themen