2017-06-21 1 views
0

Ich bin neu in Java und ich brauche eine Hilfe. Ich möchte ein Ereignis zu einem bestimmten TreeItem in meiner TreeView hinzufügen. Ich habe etwas Code und es funktioniert nicht. Was mache ich falsch?addEventHandler zu TreeItem in javafx

Hier ist mein Code:

TreeItem<String> item = new TreeItem<>(s); 

item.addEventHandler(MouseEvent.MOUSE_PRESSED, new EventHandler<MouseEvent>(){ 
       public void handle(MouseEvent e) { 
        System.out.println("Hello World"); 
       } 
      }); 

this.item.getChildren().add(item); 

Es TreeView schafft, aber das Ereignis nicht funktioniert.

Danke für Ihre Hilfe.

Antwort

1

Ich denke, dass behandeln möchten, wenn Sie auf einem TreeItem Dies kann ba einfach gelöst klicken, wenn Sie einen Listener auf das ausgewählte Element hinzufügen:

treeTable.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> { 
    if(newValue != null && newValue != oldValue){ 
      System.out.println("Hello World"); 
    } 
}); 

Wenn Sie mit java8 der lambdas hier nicht vertraut sind, ist die Version mit anonymer Klasse:

table.getSelectionModel().selectedItemProperty().addListener(new 
ChangeListener<TreeItem<TestRow>>() { 
     @Override public void changed(
       ObservableValue<? extends TreeItem<TestRow>> observable, 
       TreeItem<TestRow> oldValue, 
       TreeItem<TestRow> newValue) { 
      if (newValue != null && newValue != oldValue) { 
       System.out.println("Hello World"); 
      } 
     } 
}); 
+0

Vielen Dank für Ihre Antwort. Es funktioniert gut! –

Verwandte Themen