Caret Position anhand von X Y Koordinaten ermitteln

Guten Morgen,
per Drag and Drop soll Text in eine JTextArea gezogen werden. Der Text soll zu dem Text der bereits in der JTextArea ist hinzugefügt werden und zwar an der Stelle an der die Maus losgelassen wird.
Ich kenne in der drop Funktion des DropTargetListeners die x-y-Posiotion der Maus, finde aber keinen Weg diese in den passenden int-Wert als Position für den Caret umzuwandeln.

Mein Lösungsansatz war:
Code:
public void drop(DropTargetDropEvent dtde) {
	
    neuerText = (String) dtde.getTransferable().getTransferData(DataFlavor.stringFlavor);
    
    textArea.getCaret().setMagicCaretPosition(dtde.getLocation());
	
    stringVorher = textArea.getText().substring(0,textArea.getCaretPosition());
    stringNachher = textArea.getText().substring(textArea.getCaretPosition(),textArea.getText.length());

    textArea.setText(stringVorher + neuerText + stringNachher);
	
}

Laut Doku sollte setMagicCaretPosition den Caret an die entsprechende Mausposition setzen, tut dies allerdings nicht. Vielleicht hat jemand eine andere Idee wie man dieses Problem lösen kann. Vielen Dank im Voraus.

Christian
 
Aus einem JTree, habe dazu Transferable und Transferhandler selbst implementiert.
Es gibt quasi Textbausteine die im JTree verwaltet werden. Aus diesen soll ein Text in der JTextArea zusammengesetzt werden.
 
Wenn ich wie im Beispiel einfach mit setDragEnabled(true) ohne DropTargetListener arbeite funktioniert es ja. Dann kann ich aber nicht auf den Drop-Event reagieren. Das muss ich tun, da ein Textbaustein natürlich nur da eingefügt werden soll, wo ein anderer zu Ende ist, und nicht mittendrin
 
Zurück