Discussion:
JavaFX: LineChart führt autorange falsch durch
(zu alt für eine Antwort)
Christian H. Kuhn
2019-01-07 18:34:25 UTC
Permalink
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
Patrick Roemer
2019-01-07 20:33:46 UTC
Permalink
Post by Christian H. Kuhn
noch jemand hier?
Es wird hier vielleicht noch ein paar Mitleser geben, aber die haben
dann halt alle so viel Ahnung von JavaFX wie ich.
Post by Christian H. Kuhn
Wenn nicht: wohin soll ich mich wenden?
Da habe ich leider auch keine Ahnung. Ist ja heutzutage alles über
Gitter, Discourse und wahrscheinlich auch noch FB, Twitter und 4chan
verstreut. Ich versuche es üblicherweise direkt auf den (meist
englischsprachigen) Mailinglisten (oder ersatzweise Foren) der
jeweiligen Projekte, aber das JavaFX-Forum bei Oracle sieht ähnlich
lebendig aus wie diese Gruppe hier...

Viele Grüße
Patrick
Michael Paap
2019-01-07 23:02:33 UTC
Permalink
Post by Christian H. Kuhn
noch jemand hier? Wenn nicht: wohin soll ich mich wenden?
[...]
Post by Christian H. Kuhn
Ich vermute, dass sich das Problem lösen lässt, wenn ich die Stage zum
Neuzeichnen zwinge. Google findet mir aber keine Softwarelösung.
Bei

https://www.google.de/search?hl=de&q=java%20fx%20stage%20repaint

ist nix dabei, was weiterhilft? Stackoverflow?

Gruß
Michael
Christian H. Kuhn
2019-01-08 22:44:29 UTC
Permalink
Post by Michael Paap
Post by Christian H. Kuhn
Ich vermute, dass sich das Problem lösen lässt, wenn ich die Stage zum
Neuzeichnen zwinge. Google findet mir aber keine Softwarelösung.
Bei
https://www.google.de/search?hl=de&q=java%20fx%20stage%20repaint
ist nix dabei, was weiterhilft? Stackoverflow?
Alles nix. repaint war mir nicht eingefallen, ich hatte refresh gesucht.
Zum Teil überlappen sich die Ergebnisse, zum Teil sind andere
Fehlerquellen der Anlass, und zum Teil wird die klassische
Windows-Methode (schließen, öffnen) angewandt, die hier nicht geht.
Erfolgversprechend sah eigentlich nur requestLayout() aus. Hab ich
ausprobiert, mag nicht. Ärgerlich.

lg
QNo

Lesen Sie weiter auf narkive:
Loading...