ERLEDIGT
JA
JA
ANTWORTEN
3
3
ZUGRIFFE
1109
1109
EMPFEHLEN
-
14.02.05 12:49 #1
- Registriert seit
- Jan 2005
- Beiträge
- 9
Hallo,
ich ziehe per DragAndDrop ein TreeItem auf eine Tabelle (SWT/JFace, kein Swing).
Danach soll der Text des TreeItem in der Zelle (Spalte x, Zeile y) der Tabelle eingefügt werde, wo das 'drop' passiert.
Über event.item erhalte ich die Zeile (das TableItem):
int index = table.indexOf((TableItem) event.item);
Wie bekomme ich jetzt den Spaltenindex ?
Die einzige Möglichkeit, die ich bis jetzt gesehen habe:
Mit event.x und event.y erhalte ich die Koordinaten der Maus, wenn das 'drop' passiert.
Point pt = new Point (event.x, event.y);
Dann gehe ich durch die Spalten des (TableItem) event.item und prüfe, ob der Punkt innerhalb der Grenzen einer Spalte liegt
TableItem item = (TableItem) event.item;
for (int i=0; i<COLUMNS; i++) {
Rectangle rect = item.getBounds (i);
if (rect.contains (pt)) {
columnIndex = i;
break;
}
}
Leider liefert TableItem.getBounds die Koordinaten relativ zum 'parent', also zur Tabelle.
DropTargetEvent.x und DropTargetEvent.y liefern die Koordinaten relativ zum 'display'
Muss ich jetzt umrechnen oder kennt jemand eine einfachere Lösung?
Viele DankGeändert von dennisalcapone (14.02.05 um 18:27 Uhr)
-
Ich bin nicht sicher ob Du JTable verwendest oder etwas anderes
In JTable gibt es die Routinen:
public intcolumnAtPoint(Point point) und public int rowAtPoint(Point point)
gefunden. vielleicht helfen die Dir weiter
Takidoso
-
die Art wie ich diese beiden Routinen in JTAble ausfindigmachte war, dass ich nach Mouse gesucht habe um Mouse-Listener oder ähnliches aufstöbern zu können. Es erscheint mir dass Du kein Swing benutzt also werden dir dann vermutlich die beiden Routinene nicht helfen. Aber wenn Du im Souce-code deines GUI-Frameworks vielleicht nach Mäusen ausschau hälst klappt es vielleicht auch mit dem Käse ... ehhh Column :-D
viel Glück
Takidoso
-
15.02.05 20:53 #4
- Registriert seit
- Jan 2005
- Beiträge
- 9
Hallo, ich hab es gefunden

ein Control-Objekt bietet u.a. die Methode toControl(int,int): konvertiert Display-relative Koordinaten in Control-relativen 'Point'.
Ich rufe jetzt table.toControl(event.x, event.y) auf und erhalte so die Koordinaten der Maus beim 'drop' relativ zur Tabelle. Da auch TableItem.getBounds() die Koordinaten relativ zur Tabelle liefert (dem 'parent'), bekomme ich jetzt den gewünschetn Spaltenindex.
Vielen Dank an alle, die sich Gedanken gemacht haben. Speziell an takidoso für die schnellen Antworten.
Jürgen
Ähnliche Themen
-
Drag & Drop von Tabelle nach Tree
Von Ahuga im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 4Letzter Beitrag: 26.08.10, 10:24 -
Tree mit ++Icon & Drag & Drop aus dem Explorer
Von JavaEngel im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 2Letzter Beitrag: 14.09.08, 13:02 -
Drag'n Drop im Tree sehr ungenau...
Von Loki2 im Forum JavaAntworten: 0Letzter Beitrag: 20.06.06, 07:54 -
SWT: Ghosted Drag-Image bei Drag & Drop
Von snake_plissken im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 1Letzter Beitrag: 15.04.06, 23:36 -
SWT Table(Tree) mit Checkbox in einer Zeile
Von enrichard im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 2Letzter Beitrag: 03.04.06, 20:27





Zitieren
Login





