Java2D, Drag and Drop

  • Themenstarter Themenstarter Steffwa
  • Beginndatum Beginndatum
S

Steffwa

Guten Tag,
ich wende mich an Euch, da ich im Moment ziemlich verzweifelt bin.
Es geht um ein Softwareprojekt an der Uni, in dem wir ein Kalenderprogramm mit CalDAV etc. programmieren müssen.
Wie der Titel jedoch andeutet geht es hierbei nur um das "Widget", welches die Termine anzeigt.
Die Termine werden bei mir im moment einfach mit einem Algorithmus ausgewertet (parallel, nicht parallel, passt der termin in die lücke? ja nein etc.) und dann per Java2D als Rectangle gezeichnet etwa so(wie es genau funktioniert ist ja egal):
Code:
RoundRectangle2D[] rectanglelist = new RoundRectangle2D[appointments.size()];
for (int k=0; k < offsets.size(); k++){
...
rectanglelist[k] = new RoundRectangle2D.Float
			(MARGINWIDTH+columnwidth*(weekday-2)+ positions.get(k) * columnwidth/offsets.get(k),
					rowheight * appoBegin, columnwidth/offsets.get(k), rowheight * (appoEnd-appoBegin),
					10.F, 20.F); // (x,y,breite,hoehe,rundung, rundung2)
			g2.setColor (Color.yellow); // Später per Calendar.getColor()
			g2.fill(rectanglelist[k]);
...

Somit habe ich über die Indizes der rectanglelist[] Zugriff auf alle Temin-Rectangles.

Dooferweise sind die Mindestanforderungen nicht ganz damit abgedeckt:
Drag+Drop für Terminverschiebungen und evtl.Terminverkürzung sollten noch implementiert werden.
Ebenso Termine markieren und per Kontextmenü bearbeiten/löschen etc.

Die Idee war es halt Mouselistener zu bauen, der bei einem Klick durch die rectanglelist[] iteriert und die .contains() methode anwendet.
Jedoch scheint mir diese Idee nicht die perfomanteste zu sein. Zum anderen habe ich absolut keine Ahnung, wie ich denn das implementieren soll,
dass man die Termine am unteren Ende des Kastens ziehen und verkürzen/verlängern kann.
Und zum anderen: wie soll ich das markieren umsetzen? Etwas dadrübermalen?
Ich bin nicht der beste Programmierer und bin im Moment ein wenig mit meinem Latein am Ende.
Google brachte mir auch nicht soviel außer:
http://forums.sun.com/thread.jspa?threadID=5396873
woraus ich aber nicht sonderlich schlauer werde.
Lieben Gruß,
Stefan
 
Zurück