Я делаю приложение, в котором пользователи будут печатать по общему документу по сети.
Одной из проблем является блокировка строк, которые вводят другие пользователи.
Для этого у меня есть DocumentListener
, который проверяет изменения строки. Когда пользователь успешно переходит на новую строку (что означает, что строка не используется), слушатель уведомит других пользователей о том, что линия теперь используется.
A DocumentFilter
будет проверять каждый раз, когда редактирование выполнено, если эта строка заблокирована, прежде чем разрешить это.
Теперь одна из моих проблем заключается в том, какой тип коллекции наиболее подходит для хранения номеров строк. Коллекция будет держать только Integer
. Когда линия заблокирована, она будет добавлена в эту коллекцию. Когда DocumentFilter
необходимо проверить, доступна ли строка, он пройдет через этот список. Также, когда пользователь, который использовал эту строку, переходит на новую строку, отправляется другое сообщение, которое удалит эту строку из коллекции пользователей.
Я знаю, что ArrayList
, вероятно, будет достаточно, хотя я надеялся, что кто-то может думать иначе.