Christian030783
Mitglied
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:
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
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