Мне было поручено создать текстовый редактор с использованием сокетного программирования, где есть один сервер и несколько клиентов.
когда любой клиент меняет что-либо в своих текстовых редакторах, изменения текста должны отражаться на всех текстовых редакторах всехклиенты.
, чтобы сделать это, я использовал слушатель действия, чтобы отправить каждое изменение на сервер, а затем я использовал moveCaretposition, чтобы переместить курсор в конец текста (без этого позиция курсора сбрасывается в позициюпервого персонажа).проблема, с которой я сталкиваюсь сейчас, заключается в том, что всякий раз, когда курсор возвращается к концу текста, текст выделяется, и поскольку изменения отражаются на всех клиентах, включая клиента, который вносит изменения, этот клиент в основном не может писать,потому что всякий раз, когда он пытается что-то набрать, текст перезаписывается новыми набираемыми символами, так как предыдущий был выбран
, есть ли способ отменить выбор по умолчанию каждый раз, когда изменения отражают?так что клиенты могут писать в своих текстовых редакторах.
Я попробовал grabfocus (), getfocus (), moveCaretPosition, используя оба метода getdocument и getText
, но все же что-то мне не хватает
while(true) {
String NewDatainTextArea = ClientInput.readLine();
c1.ChangeText(NewDatainTextArea);//c1 is a text editor object
c1.t.moveCaretPosition(c1.t.getText().length());
c1.t.grabFocus();
}
есть ли возможность отменить выбор по умолчанию каждый раз, когда изменения отражаются?чтобы клиенты могли писать в своих текстовых редакторах.