无法访问JavaFX onDragOver事件

无法访问JavaFX onDragOver事件,javafx,Javafx,除onDragDetected和onDragDone外,我无法参加任何活动。我不知道为什么 我正在使用文本对象并尝试从一个文本对象拖动到另一个文本对象 运行程序后,我只能打印以下内容: 检测到Ondrag 昂德拉格敦 检测到Ondrag 我的最小可复制示例如下所示: public class Main extends Application { @Override public void start(Stage stage) { stage.setTitle(&

除onDragDetected和onDragDone外,我无法参加任何活动。我不知道为什么

我正在使用文本对象并尝试从一个文本对象拖动到另一个文本对象

运行程序后,我只能打印以下内容:

检测到Ondrag

昂德拉格敦

检测到Ondrag

我的最小可复制示例如下所示:

    
public class Main extends Application {
    @Override public void start(Stage stage) {
        stage.setTitle("Hello Drag And Drop");

        Group root = new Group();
        Scene scene = new Scene(root, 400, 200);
        scene.setFill(Color.LIGHTGREEN);

        final Text source = new Text(50, 100, "DRAG ME");
        source.setScaleX(2.0);
        source.setScaleY(2.0);

        final Text target = new Text(250, 100, "DROP HERE");
        target.setScaleX(2.0);
        target.setScaleY(2.0);

        source.setOnDragDetected(new EventHandler <MouseEvent>() {
            public void handle(MouseEvent event) {
                /* drag was detected, start drag-and-drop gesture*/
                System.out.println("onDragDetected");

                /* allow any transfer mode */
                Dragboard db = source.startDragAndDrop(TransferMode.ANY);

                /* put a string on dragboard */
                ClipboardContent content = new ClipboardContent();
                content.putString(source.getText());
                db.setContent(content);

                event.consume();
            }
        });

        target.setOnDragOver(new EventHandler <DragEvent>() {
            public void handle(DragEvent event) {
                /* data is dragged over the target */
                event.acceptTransferModes(TransferMode.ANY);
                System.out.println("onDragOver");

                event.consume();
            }
        });

        target.setOnDragEntered(new EventHandler <DragEvent>() {
            public void handle(DragEvent event) {
                System.out.println("onDragEntered");
                event.consume();
            }
        });

        target.setOnDragExited(new EventHandler <DragEvent>() {
            public void handle(DragEvent event) {
                System.out.println("onDragExited");

                event.consume();
            }
        });

        target.setOnDragDropped(new EventHandler <DragEvent>() {
            public void handle(DragEvent event) {
                System.out.println("onDragDropped");

                event.consume();
            }
        });

        source.setOnDragDone(new EventHandler <DragEvent>() {
            public void handle(DragEvent event) {
                System.out.println("onDragDone");


                event.consume();
            }
        });

        root.getChildren().add(source);
        root.getChildren().add(target);
        stage.setScene(scene);
        stage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

公共类主扩展应用程序{
@覆盖公共无效开始(阶段){
stage.setTitle(“Hello拖放”);
组根=新组();
场景=新场景(根,400,200);
场景。设置填充(颜色。浅绿色);
最终文本源=新文本(50100,“拖动我”);
来源:setScaleX(2.0);
来源:setScaleY(2.0);
最终文本目标=新文本(250100,“放在这里”);
target.setScaleX(2.0);
target.setScaleY(2.0);
检测到source.setOnDragDetected(新的EventHandler(){
公共无效句柄(MouseeEvent事件){
/*检测到拖动,开始拖放手势*/
System.out.println(“onDragDetected”);
/*允许任何传输模式*/
Dragboard db=source.startDragAndDrop(TransferMode.ANY);
/*在拖板上放一根绳子*/
ClipboardContent=新的ClipboardContent();
content.putString(source.getText());
db.setContent(content);
event.consume();
}
});
target.setOnDragOver(新的EventHandler(){
公共无效句柄(DrageEvent事件){
/*将数据拖到目标上*/
event.acceptTransferModes(TransferMode.ANY);
System.out.println(“onDragOver”);
event.consume();
}
});
target.setOnDragEntered(新的EventHandler(){
公共无效句柄(DrageEvent事件){
System.out.println(“OndragEnter”);
event.consume();
}
});
target.setOnDragExited(新的EventHandler(){
公共无效句柄(DrageEvent事件){
System.out.println(“onDragExited”);
event.consume();
}
});
target.setOnDragDrop(新的EventHandler(){
公共无效句柄(DrageEvent事件){
System.out.println(“OnDragDrop”);
event.consume();
}
});
setOnDragDone(新的EventHandler(){
公共无效句柄(DrageEvent事件){
System.out.println(“onDragDone”);
event.consume();
}
});
root.getChildren().add(源);
root.getChildren().add(目标);
舞台场景;
stage.show();
}
公共静态void main(字符串[]args){
发射(args);
}
}

您可以创建一个新的应用程序吗?当isI更新发布的代码时,我们可以复制、粘贴和运行它,以揭示整个示例@James_DIt对我的预期效果<代码>onDragDetected onDragEntered onDragOver(xN)OnDragDrop OnDragExit onDragDone我可以问一下您使用的是什么版本的JavaFX和Java吗?我使用的是JavaFX12和Java11.JavaFXV14和JDK11