Tach,
wie der Titel bereits erwähnt, suche ich nach ´ner Möglichkeit, meine innerhalb eines JPanels gezeichneten Geometrien selektieren zu können (oder zu verschieben, oder weiß der Kuckuck, was man mit der Maus auf ´ner Geometrie noch anstellen kann).
Ich speichere also sämtliche Geomtrien (Punkte, (Poly-)Linien, Polygone) in eine Liste, lege einen MouseListener auf mein Panel und prüfe nun bei jedem Mausklick, ob irgendeine Geometrie in meiner Liste die Bedingung shape.intersects(MouseRectangle) erfüllt (MouseRectangle ist jetzt erstmal nur ein Platzhalter für ´nen Puffer um die Mausposition).
Das scheint mir doc irgendwie ein wenig umständlich zu sein, hauptsächlich deswegen, weil ich bereits eine Schleife hab, die alle Geometrien iteriert und zeichnet (permormancetechnisch wäre es also wahrscheinlich schlau, diese Überprüfung innerhalb der Zeichenschleife mitzuerledigen, allerdings find ich das jetzt nicht wirklich stilvoll und elegant... ). Also in anderen Worten: zeichne eine Geometrie und prüfe dabei gleich mal, ob sie selektiert wurde.
Gibt es denn nicht eine Möglichkeit, das ganze über ´nen eigenen MouseListener zu regeln, der auf alle Geometrien draufgelegt wird. Aber wie leg ich einen solchene Listener auf mehrere hundert Objekte und unterscheide dann, wo sie herkommen?
Denkanstöße fände ich hier echt nett... danke schonmal
wie der Titel bereits erwähnt, suche ich nach ´ner Möglichkeit, meine innerhalb eines JPanels gezeichneten Geometrien selektieren zu können (oder zu verschieben, oder weiß der Kuckuck, was man mit der Maus auf ´ner Geometrie noch anstellen kann).
Ich speichere also sämtliche Geomtrien (Punkte, (Poly-)Linien, Polygone) in eine Liste, lege einen MouseListener auf mein Panel und prüfe nun bei jedem Mausklick, ob irgendeine Geometrie in meiner Liste die Bedingung shape.intersects(MouseRectangle) erfüllt (MouseRectangle ist jetzt erstmal nur ein Platzhalter für ´nen Puffer um die Mausposition).
Das scheint mir doc irgendwie ein wenig umständlich zu sein, hauptsächlich deswegen, weil ich bereits eine Schleife hab, die alle Geometrien iteriert und zeichnet (permormancetechnisch wäre es also wahrscheinlich schlau, diese Überprüfung innerhalb der Zeichenschleife mitzuerledigen, allerdings find ich das jetzt nicht wirklich stilvoll und elegant... ). Also in anderen Worten: zeichne eine Geometrie und prüfe dabei gleich mal, ob sie selektiert wurde.
Gibt es denn nicht eine Möglichkeit, das ganze über ´nen eigenen MouseListener zu regeln, der auf alle Geometrien draufgelegt wird. Aber wie leg ich einen solchene Listener auf mehrere hundert Objekte und unterscheide dann, wo sie herkommen?
Denkanstöße fände ich hier echt nett... danke schonmal