Javafx 删除的文件仅移动一位,然后发生异常

Javafx 删除的文件仅移动一位,然后发生异常,javafx,drag-and-drop,shape,pane,Javafx,Drag And Drop,Shape,Pane,所以上次我问了一个关于拖放的问题,多亏了他们的帮助,我几乎掌握了拖放的窍门。我的问题是,在我将矩形从左锚面板拖到右窗格后,如果我试图在第二个窗格中抓住它,它将只移动几毫米,然后显示InvocationTargetException。这是我的密码: public void smthOver(DragEvent de) { if (de.getGestureSource() == rect || de.getGestureSource() == ovalo || de.getGestureS

所以上次我问了一个关于拖放的问题,多亏了他们的帮助,我几乎掌握了拖放的窍门。我的问题是,在我将矩形从左锚面板拖到右窗格后,如果我试图在第二个窗格中抓住它,它将只移动几毫米,然后显示InvocationTargetException。这是我的密码:

public void smthOver(DragEvent de) {
    if (de.getGestureSource() == rect || de.getGestureSource() == ovalo || de.getGestureSource() == strich) {
        de.acceptTransferModes(TransferMode.ANY);
        de.consume();         
    } else {
        de.acceptTransferModes();
    }

public void smthDropped(DragEvent de) {
    if (de.getGestureSource() == rect) {
        dropZone.getChildren().add(rect);
        de.consume();
    } else if (de.getGestureSource() == ovalo) {
        dropZone.getChildren().add(ovalo);
        de.consume();
    } else if (de.getGestureSource() == strich) {
        dropZone.getChildren().add(strich);
        de.consume();
    }

}

public void smthDetectedRect(MouseEvent me) {
    try {
        Dragboard db = rect.startDragAndDrop(TransferMode.ANY);
        ClipboardContent content = new ClipboardContent();
        content.putString(rect.getId());
        db.setContent(content);
        me.consume();
    } catch (Exception e) {
        e.printStackTrace();
    }    
}

public void smthPressedRect(MouseEvent me) {
    x = me.getSceneX();
    y = me.getSceneY();
    orgTranslateX = ((Rectangle) (me.getSource())).getTranslateX();
    orgTranslateY = ((Rectangle) (me.getSource())).getTranslateY();
    rect.setCursor(Cursor.HAND);
}

public void smthDraggedRect(MouseEvent me) {
    double offsetX = me.getSceneX() - x;
    double offsetY = me.getSceneY() - y;
    double newTranslateX = orgTranslateX + offsetX;
    double newTranslateY = orgTranslateY + offsetY;

    ((Rectangle) (me.getSource())).setTranslateX(newTranslateX);
    ((Rectangle) (me.getSource())).setTranslateY(newTranslateY);
提前谢谢

编辑:对不起,我不知道我必须显示堆栈跟踪

   java.lang.IllegalArgumentException: Children: duplicate children added: parent 
   = Pane[id=dropZone]

所以我理解一个例外,我在“smthdrop”的窗格中添加了多个名为“rect”的子项,但是你知道我如何解决这个问题吗?因为我使用“smthdrop”将形状从左窗格添加到右窗格。希望这能解决混淆问题

如果您能将代码发布到调用函数的位置,这将有助于了解逻辑的运行方式请包含堆栈跟踪
InvocationTargetException
可能不是唯一的问题。
InvocationTargetException
通常是一个异常,它将真正的问题封装在它的
原因中。完整的stacktrace应该包含此类信息。这将使发现问题变得更加容易。请回答这个问题,并在代码块中包含完整的堆栈跟踪。请发布感谢提示,我现在用堆栈跟踪编辑了这个问题