Java - Как я могу добавить к jTextArea из сокета? - PullRequest
0 голосов
/ 23 октября 2018

Итак, я решил попробовать поработать с мессенджером ServerSocket / Socket, чтобы ознакомиться с тем, как использовать ServerSockets и Sockets.В настоящее время я все еще работаю на стороне сервера приложения, и у меня возникают проблемы с получением jTextArea в графическом интерфейсе для обновления информации, отправленной из клиентской программы.

Вот мой код:

Для сокетов (класс ServerSocket):

while (shouldRun) {
    inputMessage = (String)input.readObject();
    new jMessengerServerGUI().updateFeed(inputMessage);
    System.out.println(inputMessage);
}

и для графического интерфейса (класс jMessengerServerGUI):

public void updateFeed(String updateMessage) {
    txtServerFeed.append(updateMessage);
    System.out.println(updateMessage);
}

Методы находятся в отдельных классах, где строка inputMessage имеет видполучил и отправил без нареканий и распечатал в консоли.Проблема заключается в обновлении jTextArea txtServerFeed.

Как лучше всего выполнить запись в TextArea при вызове из внешнего класса?

1 Ответ

0 голосов
/ 23 октября 2018

Вам нужно сделать ваше приложение многопоточным.Где сервер и сокет работают в отдельном потоке, а не в потоке пользовательского интерфейса;

Вы можете увидеть этот пример: https://github.com/khirulbasher/Multithreaded-Server-Client

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...