javaFX 2- Controller内部的监听器

时间:2013-04-18 14:51:24

标签: controller javafx-2 listener

想在控制器中使用拖放功能(见下文)。但由于tableView.getParent()为NULL,我的列表器不起作用。你能帮忙吗?我不想将代码移到主类。

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();
            }
        });
    }

1 个答案:

答案 0 :(得分:0)

只需将未初始化的代码放在runLater中:

Platform.runLater(new Runnable() {

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