Ich entwickle einige Messenger mit JavaFX, nur um mehr mit dieser Technologie vertraut zu machen.Wie beobachtet man die Eigenschaften der Objekte in ObservableList
Contact
hat zwei Haupteigenschaften: User
und zuletzt Message
.
brauche ich
- Liste der Kontakte mit neuesten Nachrichten
- Kontaktliste nach Namen sortiert anzuzeigen
ich zwei Lösungen kamen bisher
Erste Lösung ist Contact
unveränderlich zu machen. Daher ist es erforderlich, den Kontakt jedes Mal zu ersetzen, wenn eine neue Nachricht ankommt oder sich die Benutzerinformationen ändern. Es funktioniert, aber Kontakt blinkt in ListView auf Update.
Zweite Lösung ist ObjectProperty
zu verwenden:
public class Contact {
private final ObjectProperty<User> user = ...;
private final ObjectProperty<Message> lastMessage = ...;
}
In diesem Fall hat ich benutzerdefinierten ObservableList erstellen hinzufügen/entfernen Hörer Contact
‚s Eigenschaften, wenn Contact
hinzugefügt wird/entfernt/aus der Liste. Dies ist erforderlich, da beide Listen automatisch sortiert werden sollten.
So haben beide Lösungen Nachteile.
Bitte geben Sie Ihre Empfehlungen, wie Sie mein Ziel erreichen.
Mögliche Duplikate von [Java 8 SortedList TableView nicht erfrischend] (http://stackoverflow.com/questions/21171948/java-8-sortedlist-tableview-not-refreshing) – kleopatra
ja, es ist - absolut ein sehr ähnliches Problem mit genau dem gleichen Mittel ;-) – kleopatra