2013-04-18 4 views
0

Aimeriez-vous utiliser la fonction glisser-déposer dans le contrôleur (voir ci-dessous). Mais comme tableView.getParent() est NULL, mon listeur ne fonctionne pas. Pouvez-vous demander de l'aide ici? Je ne veux pas déplacer le code vers la classe principale.javaFX 2- Listner inside Contorller

public class CenterController implements Initializable { 
@FXML public TableView<Swap> tableView; 
public void initialize(URL location, ResourceBundle resources) { 
loadDragDrop(tableView.getParent()); 
} 
public void loadDragDrop(final Node n){ 
     n.setOnDragOver(new EventHandler<DragEvent>() { 
      @Override 
      public void handle(DragEvent event) { 
       Dragboard db = event.getDragboard(); 
       if (db.hasFiles()) { 
        event.acceptTransferModes(TransferMode.COPY); 
       } else { 
        event.consume(); 
       } 
      } 
     }); 
    n.setOnDragDropped(new EventHandler<DragEvent>() { 
      @Override 
      public void handle(DragEvent event) { 
       Dragboard db = event.getDragboard(); 


       boolean success = false; 
      event.setDropCompleted(success); 
       event.consume(); 
      } 
     }); 
    } 

Répondre

0

Il suffit de mettre le code qui n'est pas initialisé dans un runLater:

Platform.runLater(new Runnable() { 

    @Override 
    public void run() { 
     // youre code goes here ;-) 
    } 
});