Re: Shapes markieren
- From: Henning Bredel <h.bredel@xxxxxx>
- Date: Tue, 23 May 2006 12:27:25 +0200
Lars Amsel schrieb:
Hi Henning,
Henning Bredel wrote:Mir ist nicht ganz klar, wie ich das bewerkstelligen kann. Die Mauspo-
sition zu ermitteln ist kein Problem (egal ob user oder device Koordi-
naten). Ich weiß also, wo sich meine Maus befindet, aber nicht, was ich
anstellen muss, um mit einem Klick das nächstgelegenste Shape (oder noch
besser die entsprechende Geometrie) zu markieren.
Zunächst weiß die Graphics2D nichts von Mausklicks und Shapepositionen. Das musst Du schon selbst machen.
Nehmen wir man an, Du hast die Shapes in einer Liste und malst sie so:
for ( Shape shape : shapeList ) {
graphics.draw ( shape );
}
Genauso mache ich es :-).
Dann hast Du damit automatisch ein z-Order. Elemente, die sich weiter hinten in der Liste befinden überdecken u.U. Elemente. die sich weiter vorn befinden. Aus Anwendersicht erwartet man natürlich, das das Element selektiert wird, das 'oben' liegt. Also mußt Du die Liste von hinten durchsuchen. Das erste Element, das
shape.contains ( mousePoint )
erfüllt, ist es dann. Wenn Du ein netter Programmierer bist, ermöglichst
Du Deinem Anwender auch hinten liegende Elemente zu markieren, fängst also immer am aktuell selektierten Element an zu suchen (bis zum Listenanfang und dann nochmal von hinten bis zum aktuell selektierten Element).
Das aktuelle selektierte? Um sowas zu haben, muss ich ja bereits etwas
ausgewählt haben. Ich glaube, mir bleibt nichts anderes übrig, als über
meine komplette Liste ein
Shape.contain (Point)
auszuführen, alle Ergebnisse in eine weitere temporäre Liste zu spei-
chern, um in dieser detailliertere Berechnungen durchzuführen. Denn
eindeutig ist die contain-Methode ja nicht.
Wenn Du so kleine Vierecke haben willst, an denen man erkennen kann, welches Element gerade ausgewählt ist - die musst Du selbst malen. getBounds2D() von Shape gibt Dir das umgebende Rechteck.
Alle Klarheiten beseitigt?
Gruß
Lars
Gruß
Henning
--
.
- Follow-Ups:
- Re: Shapes markieren
- From: Lars Amsel
- Re: Shapes markieren
- References:
- Shapes markieren
- From: Henning Bredel
- Re: Shapes markieren
- From: Lars Amsel
- Shapes markieren
- Prev by Date: Re: Eclipse: Fehlermeldung des Compilers bei XML-Datei
- Next by Date: Re: Größe der ContentPane und titlebar eines JInternalFrame
- Previous by thread: Re: Shapes markieren
- Next by thread: Re: Shapes markieren
- Index(es):
Relevant Pages
|