Я разрабатываю мессенджер с JavaFX, чтобы лучше познакомиться с этой технологией.
Contact
имеет два основных свойства: User
и последнее Message
.
мне нужно показать
- список контактов с последними сообщениями
- список контактов, отсортированный по имени
Я пришел к двум решениям до сих пор
Первое решение — сделать Contact
неизменяемым. Таким образом, необходимо заменять контакт каждый раз, когда приходит новое сообщение или изменяется информация о пользователе. Это работает, но контакт мигает в ListView при обновлении.
Второе решение — использовать ObjectProperty
:
public class Contact {
private final ObjectProperty<User> user = ...;
private final ObjectProperty<Message> lastMessage = ...;
}
В этом случае мне нужно создать собственный ObservableList для добавления/удаления слушателей к свойствам Contact
, когда Contact
добавляется/удаляется в/из списка. Это необходимо, потому что оба списка должны автоматически сортироваться.
Таким образом, оба решения имеют недостатки.
Пожалуйста, дайте свои рекомендации, как достичь моей цели.