Auf Benutzeraktionen richtig reagieren
-
Guten Tag,
ich programmiere gerade ein kleines Grafiktool, in welchem ich geometrische Formen und Linien etc. zeichnen kann.
Die Objekte können z.b. ausgewählt (die Farbe ändert sich zu rot) und verschoben werden. Ein errneuter Klick fixiert das Objekt dann wieder.Da ich manche Objekte anders behandle, wurden die mouseAction-Funktionen ziemlich lang und verschachtelt und bestehen zum Teil aus ein paar if( ... instanceof ..).
Gibt es eine Möglichkeit das ganze etwas eleganter und übersichtlicher zu lösen? Irgendwie gehören diese Sachen auch nicht in den MouseListener, sondern in die konkrete Klasse?!
Beste Grüße!
-
Du könntest z.B. eine Schnittstelle wie IMouseEventHandler definieren, die für verschiedene Objekte implementiert wird. Und dann musst du an geeigneter Stelle entscheiden, welcher Handler instanziiert wird (das kann evtl. von mehreren Faktoren abhängen).
-
Gib den Objekten, welche verschoben werden können, eine Interface für ihre Position.
Gib den Objekten, welche selektiert werden können, ein Interface für die Selektion.
Allenfalls kann man beides in ein Interface Draggable oder sowas zusammenfassen.
Nun kannst du alle deine Objekte gleich behandeln.