Christian H. Kuhn
2019-01-07 18:34:25 UTC
Liebe Gemeinde,
noch jemand hier? Wenn nicht: wohin soll ich mich wenden?
MVC-Modell in JavaFX. Scene hat ein BorderLayout. Top und Left befinden
sich verschiedene Auswahlelemente, die ihre Werte an den Controller
geben. Center hat ein LineChart<String, Number>, das vom Controller per
setData() seine Werte erhält.
Ändere ich die Daten, indem ich die Auswahl über eine der beiden
ToggleGroup in Top ändere, klappt alles. Ändere ich die Daten über die
ListView in Left, wird die Y-Achse (die X-Achse ändert sich nicht, da
sind Monat-Jahr-Paare als String, die sind immer gleich) in knapp einem
Drittel der Fälle nicht oder falsch neu skaliert. Die übertragenen Daten
sind korrekt, und nach einer Änderung der Fenstergröße zeichnet sich das
auch alles wieder richtig.
Das ist deshalb besonders seltsam, weil alle Änderungen der drei
Auswahlelemente zuletzt beim gleichen ChangeListener im Controller
landen, der als einziger weiß, woher er die Daten bekommt und wohin er
sie schickt. Der setzt auch den LineChart-Titel, und der gibt der
Series, die die angezeigten Daten enthält, den richtigen Namen. Das
klappt alles. Nur der Y-Maßstab verrutscht regelmäßig. Und das ist
blöde, wenn ich damit Daten beim Kunden präsentieren will.
Ich vermute, dass sich das Problem lösen lässt, wenn ich die Stage zum
Neuzeichnen zwinge. Google findet mir aber keine Softwarelösung. Und
Stage.refresh() existiert nicht. Wie geht es richtig? Alternativ:
Wodurch entsteht mein Problem überhaupt, und wie vermeide ich es?
TIA
QNo
noch jemand hier? Wenn nicht: wohin soll ich mich wenden?
MVC-Modell in JavaFX. Scene hat ein BorderLayout. Top und Left befinden
sich verschiedene Auswahlelemente, die ihre Werte an den Controller
geben. Center hat ein LineChart<String, Number>, das vom Controller per
setData() seine Werte erhält.
Ändere ich die Daten, indem ich die Auswahl über eine der beiden
ToggleGroup in Top ändere, klappt alles. Ändere ich die Daten über die
ListView in Left, wird die Y-Achse (die X-Achse ändert sich nicht, da
sind Monat-Jahr-Paare als String, die sind immer gleich) in knapp einem
Drittel der Fälle nicht oder falsch neu skaliert. Die übertragenen Daten
sind korrekt, und nach einer Änderung der Fenstergröße zeichnet sich das
auch alles wieder richtig.
Das ist deshalb besonders seltsam, weil alle Änderungen der drei
Auswahlelemente zuletzt beim gleichen ChangeListener im Controller
landen, der als einziger weiß, woher er die Daten bekommt und wohin er
sie schickt. Der setzt auch den LineChart-Titel, und der gibt der
Series, die die angezeigten Daten enthält, den richtigen Namen. Das
klappt alles. Nur der Y-Maßstab verrutscht regelmäßig. Und das ist
blöde, wenn ich damit Daten beim Kunden präsentieren will.
Ich vermute, dass sich das Problem lösen lässt, wenn ich die Stage zum
Neuzeichnen zwinge. Google findet mir aber keine Softwarelösung. Und
Stage.refresh() existiert nicht. Wie geht es richtig? Alternativ:
Wodurch entsteht mein Problem überhaupt, und wie vermeide ich es?
TIA
QNo