ich hab mitbekommen und gesehen, dass es bei Javafx einen Methode .refresh() gibt, welches die Tabelle aktualisiert, jedoch existiert bei mir diese Methode nicht, ich bekomme immer nur eine Fehlermeldung.
Muss man da etwas noch beachten, oder wieso geht es bei mir nicht?
komisch, ich hab von einem Freund ein teil code bekommen, wo diese refresh() enthalten ist, und auch da zeigt es bei mir rot unterstrichen, aber wenn ich mit STRG und Mausklick rein gehe bekomme ich in der tat eine Methode:
/**
* Call this function to force the TableView to re-evaluate itself. This is
* useful when the underlying data model is provided by a TableModel, and
* you know that the data model has changed. This will force the TableView
* to go back to the dataProvider and get the row count, as well as update
* the view to ensure all sorting is still correct based on any changes to
* the data model.
*/
private void refresh() {
getProperties().put(TableViewSkinBase.REFRESH, Boolean.TRUE);
}```
Was sagt denn die Fehlermeldung genau?! Je nach IDE sollte die ja irgendwo erscheinen, z.B. in einem Fehlerausgabe-Fenster, oder in einem Tooltip, wenn man mit der Maus über dem rot unterstrichenen stehenbleibt…
in openjfx/8u-dev/rt: 639794806c6c
‚RT-22599: Ability to force a ListView or TableView refresh‘
rot angestrichen, vielleicht entfernt oder erst Vorschlag…, überhaupt openjfx, ist das was besonders? Fragen über Fragen…
Bin mit JavaFX auch nicht so vertraut, aber bei dem wenigen, was ich bisher gesehen habe, war intern alles so massivst verdrahtet, dass ich mich gerade frage, wo und wann so ein manuelles update überhaupt erforderlich sein sollte…
Propagiert man Änderungen über die Props, dann erfolgt der refresh automatisch und auch nur darauf, was auch refresht werden muß.
Das refresh ist mMn. nur eine Krücke.
Ansonsten kann man sich noch einen Wrapper bauen, der das ganze Element wrappt und dafür Properties bereitstellt. Ähnlich dem Birthdate ObjectProperty. Ist allerdings etwas tricky aber machbar.
Bei der zuerst verlinkten Stackoverflow-Antwort stand, dass nicht alle Funktionen wie erwartet einen Refresh auslösen (deswegen hatte ich gefragt, um welche Änderungen es geht).
Aber vielleicht ist das bei der neuesten Version auch gefixt?!
Bzgl. der Version: Sicher, dass sich da nicht noch irgendwo eine alte JavaFX-Version ins Eclipse reinschleicht?
Hmja, das zielt wohl auch darauf ab: Strukturelle Änderungen (Hinzufügen oder Entfernen von Elementen) vs. Inhaltsänderungen (also Änderung einer Property in einem angezeigten Objekt). Aber solange keine weiteren Nachfragen o.ä. kommen, ist die Frage wohl beantwortet.
Ich hab die Lösung gefunden, auf mein Betriebssystem war zwar java 8u66 installiert, aber nicht auf mein eclipse, da war es noch auf java 8u25.
Ich danke an euch, eure Lösungen waren auch hilfreich!