因此,我决定尝试使用ServerSocket / Socket即时通讯程序,以熟悉如何使用ServerSockets和Sockets。我目前仍在应用程序的服务器端工作,无法在GUI上获取jTextArea来更新从客户端程序发送的信息。
这是我的代码:
对于事物的Socket方面(ServerSocket类):
while (shouldRun) {
inputMessage = (String)input.readObject();
new jMessengerServerGUI().updateFeed(inputMessage);
System.out.println(inputMessage);
}
对于GUI(jMessengerServerGUI类):
public void updateFeed(String updateMessage) {
txtServerFeed.append(updateMessage);
System.out.println(updateMessage);
}
这些方法位于单独的类中,在其中可以完美无误地接收和发送字符串inputMessage,并在控制台中将其打印出来。问题在于更新jTextArea txtServerFeed。
从外部类调用时如何最好地实现对TextArea的写入?
答案 0 :(得分:0)
您需要使您的应用程序成为多线程。 Server&Socket工作在单独的线程而不是UI-Thread的地方;
您可以看到该示例: https://github.com/khirulbasher/Multithreaded-Server-Client