hmm: GUI erstellen, herangehensweise: Pixel auf untersterebene?

Hallo,

ich schreibe gerade eine GUI, leider in JavaFX. Grafischeelemente kann ich dort u.a. in Pane's anordnen, die jeweils Links, Rechts, Oben, unten und Zentrum besitzen, dort habe ich einen sogenanten Linechart eingestellt, ein ganz normales Koodinatensystem mit x und y Achse. In diesem Koordinatensystem kann ich Punkt-Elemente per Double Koordinanten eintragen. Nun möchte ich aber einige Linien von den Punkten zur x-Achse zeichen, dass problem ist, dass dies nur geht indem ich Line-Elemente direkt per Pixelangabe anordne. Leider Passen die Pixeleingaben nicht zu den Koordinanten eingaben so dass ich diese Quasi umrechnen müsste. Alternativ könnte ich auf unterster Programmierebene etwas schreiben, dass sich irgendwie um die anordnung der Elemente kümmert.

Frage: Wie würdet ihr hier vorgehen? Ich überlege auch, auf das koordinantensystem zu verzichten und Quasi ein eigenes zu schreiben um dann die GUI per verschachtelten Pane's aufteilen zu können.

so sieht die gui aktuell aus: Aktuelle GUI

die linie die nach unten geht soll von dem schwarzen kleinen punkt aus nach unten gehen.

  1. Tach!

    Nun möchte ich aber einige Linien von den Punkten zur x-Achse zeichen, dass problem ist, dass dies nur geht indem ich Line-Elemente direkt per Pixelangabe anordne. Leider Passen die Pixeleingaben nicht zu den Koordinanten eingaben so dass ich diese Quasi umrechnen müsste.

    Genauso ist es. Lässt sich einfach mit dem Dreisatz bewerkstelligen. Wird komplexer, wenn noch Drehungen, Verschiebungen, Zoom und andere Transformationen ins Spiel kommen. Üblicherweise gibts dafür bereits Komponenten, die das Problem schon gelöst haben, und die man mit den Werten des eigenen Koordinatensystems ansprechen kann. Das hört, wenn ich mich recht erinnere, auf den Namen: Weltkoordinaten in Pixelkoordinaten umrechnen.

    dedlfix.

    1. ok, mach ich so!

      ich hab aktuell:

      1. eine klasse für das hauptfenster

      2. eine klasse für das chartdiagram, diese klasse ordnet die einzelnen "blatt elemente" in dem chart an

      3. eine klasse blatt

      funktionsweise:

      -> hauptfenster erstellt die klasse chartdiagramm plus einen aktionhandler

      -> wenn immer der aktionhandler des hauptfensters ausgelöst wird, passiert folgendes:

      1. schritt: die chartdiagrammklasse erstellt neue objekte vom typ blatt

      2. schritt: im anschluss wird das chartdiagramm in der gui komplett neu erstellt

      die klasse blatt wiederum hat einen aktionhandler, der (wenn er ausgelöst wird) eine linie zeichent

      der code erscheint mir ziemlich unpraktisch, kann ich das irgendwie sauberer in klassen aufteilen? das objekt blatt bekommt den pane vom hauptfenster über das chartdiagrammobjekt durchgereicht, damit ich dass im actionhandler des blatts benutzen kann. diese ganzen actionhandler, sollte ich die lieber irgendwo zentral setzen?

      ich muss noch viele sachen einbauen, das grundgerüst das ich mir schreibe sollte entsprechend flexibel sein.