JavaFX Erweitern der Line(Shape)-Klasse

Naryxus

Aktives Mitglied
Hallo,

ich würde gerne die Möglichkeit haben, Pfeile einfach zeichnen zu können.
Mein Wunsch wäre ein Aufruf der Art:

Java:
Arrow arrow = new Arrow(0, 0, 50, 50);
scene.getChildren.add(arrow);

Sodass dann in der Szene eine Linie von der Position (0, 0) zur Position (50, 50) mit einem gleichschenkligen Dreieck auf der Seite des Endpunktes hinzugefügt wird. Ich denke ihr wisst, was ich meine.

Ich hatte so etwas ähnliches schon einmal gemacht. Dabei habe ich aber lediglich eine "Gruppe" von Linien erstellt, sodass der gezeichneten Linie von Start- zu Endpunkt einfach noch zwei Linien hinzugefügt wurden, die der Pfeilspitze entsprachen.
Mit dieser Realisierung ist aber ein, wie oben gewünschter, Aufruf leider nicht möglich. Es müsste also in jeder Klasse die entsprechende Methode eingefügt werden, die die Linienmenge konstruiert oder um die Wiederverwendbarkeit zu verbessern eine "ArrowFactory" mit einer Factory-Methode geschrieben werden.

Mein neuer Ansatz ginge in die Richtung die Klasse Line der JavaFX-Shapes zu erweitern:
Java:
public class Arrow extends Line

Ich habe jedoch keine richtige Ahnung, wie ich da anfangen soll.
Wenn ich die Klassen richtig verstanden habe, sind die Nodes nicht selbst für das Zeichnen in der Szene zuständig?
Wie funktioniert denn das Zeichnen in einer Szene?

Grüße, Naryxus
 
So ich habe mir dann mal selbst geholfen! 😀

Für möglicherweise Interessierte:

Ich habe die Klasse Arrow nun von der Klasse Path erben lassen. Dabei erstelle ich mir zu variablen Einstellmöglichkeiten mehrere Linien (eben einen Pfad) und fülle den Teilpfad, der die Pfeilspitze darstellt.
Prinzipiell war es gar nicht so schwer.
Das komplexere Feature, das mir dadurch möglich wurde, ist das Setzen und letztendliche Binden von Properties, sodass der Pfeil anderen Shapes folgen kann, wenn diese per Drag and Drop bewegt werden.

Für Details stehe ich gern zu Verfügung. 😉

Grüße, Naryxus.
 

Neue Themen


Zurück
Oben