Drag & Drop JList - JTextFeld

Dit

Grünschnabel
Hallo Forum,

kurz gesagt habe ich 2 Fragen:

1. Habe eine JList und möchte in ein TextFeld droppen welches auf Enabled=false, oder Editable=false gestellt ist.
Bisher hab ich noch keine Möglichkeit gefunden in das "ausgegraute" TextFeld zu droppen. Gibt es da irgendwelche Möglichkeiten. Einen Workarround hätte ich, denke aber das es auch leichter geht

Workarround: das TextFeld mit einem Mouselistener versehen, bei MouseOver o.ä. das TextFeld auf Editable=true setzen und beim verlieren wieder auf false. Ist natürlich umständlich, daher hier die Frage, geht es auch leichter?

2. Woher bekomme ich das Zielobjekt ausgelesen. Wie beschrieben ziehe ich von einer JList in ein TextFeld, um mein Objekt nachher wieder auslesen zu können (ich trage nur den Namen in das TF ein), würde ich gerne eine Hashmap mit TextFeld und Objekt halten, um eine 100%ige Eindeutigkeit zu gewährleisten.
Habe aber bisher noch nichts gefunden wo ich das Ziel auslesen kann.

Meine Vermutung waren folgende Objekte:

DragSourceDragEvent
DragSourceEvent
DragSourceDropEvent

aber außer der Quelle, dem Objekt das ich übertrage und sonstigen für mich eher uninteressanten Eigenschaften hab ich nichts weiter gefunden.

Mein Gedanke: Während des Vorgangs von Drag & Drop weiß Java ja, in welches TextFeld es etwas eintragen muss, also müsste doch die Zieladresse (in meinem Fall das TextFeld) bekannt sein.

Workarround: Ich schreibe einen Listener o.ä. für das TextFeld und reagiere in dem Moment wenn etwas eingetragen wird.

über Hilfe wäre ich Dankbar, denn nachdem ich das Internet, meine Bücher und sogar den Mann meines letzten Swinges Kurses befragt habe, bin ich echt hilflos

mfg
Dit

Habs geschafft: (alleine^^)

Lösung Zu1:
Code:
new DropTarget(aTextFeld, new MyDropTargetListener());
aTextFeld.setTransferHandler(new TransferHandler("text"));

Lösung zu2:
Code:
public void drop(DropTargetDropEvent dtde){
JTextField tfDrop = (JTextField)dtde.getDropTargetContext().getComponent();
}

mfg
Dit
 
Zuletzt bearbeitet:
Zurück