1Danke
ERLEDIGT
JA
JA
ANTWORTEN
5
5
ZUGRIFFE
590
590
EMPFEHLEN
-
23.02.11 10:43 #1
- Registriert seit
- May 2009
- Beiträge
- 36
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 :1 2 3 4 5 6 7 8 9 10 11 12
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
-
23.02.11 12:41 #2
Bist du dir sicher, dass du es dir nicht so schwer machst? Von wo kommt der Text, der in die TextArea eingefügt werden soll?
http://www.java2s.com/Code/Java/JDK-...JTextField.htmJeder Fehler, aus dem wir lernen, ist ein Erfolg...
...Aber mach' nicht den Fehler, nicht aus deinen Fehlern zu lernen.
-
23.02.11 12:48 #3
- Registriert seit
- May 2009
- Beiträge
- 36
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.
-
23.02.11 12:56 #4
- Registriert seit
- May 2009
- Beiträge
- 36
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
-
23.02.11 13:10 #5
Hmm, nagut, aber wenn ich das richtig verstanden habe, dann sollte dir das hier vermutlich er weiterhelfen:
int JTextComponent.viewToModel(Point pt)
Converts the given place in the view coordinate system to the nearest representative location in the model.Jeder Fehler, aus dem wir lernen, ist ein Erfolg...
...Aber mach' nicht den Fehler, nicht aus deinen Fehlern zu lernen.
-
23.02.11 13:27 #6
- Registriert seit
- May 2009
- Beiträge
- 36
Das ist die Lösung, Danke
Ähnliche Themen
-
[Low-Level C] Caret-Position ändern.
Von killerkirsche im Forum C/C++Antworten: 1Letzter Beitrag: 10.07.09, 14:14 -
Zeilennummer aus caret-Position ermitteln
Von lockenator im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 2Letzter Beitrag: 23.07.07, 10:54 -
Zeilennummer aus caret-Position ermitteln
Von lockenator im Forum JavaAntworten: 3Letzter Beitrag: 18.07.07, 13:43 -
Position des Caret-Zeichens(Cursor) in CEdit-Feld ermitteln
Von Padd_y im Forum VisualStudio & MFCAntworten: 2Letzter Beitrag: 12.04.07, 18:09 -
Position von CEdit ermitteln und neue Position setzen
Von olliss im Forum VisualStudio & MFCAntworten: 1Letzter Beitrag: 15.09.05, 19:30





Zitieren
Login





