Как автоматически обновить jtextarea во время выполнения
я создаю многопользовательское чат-приложение с использованием сокетов на java . я столкнулся с проблемой. Текстовая область, где я должен показывать чаты всех пользователей, не обновляется во время выполнения. Я попробовал сделать что-то вроде System.out.print(содержимое текстовой области) , и в командной строке он отображает каждую строку, которую пользователь вводит в своем окне чата, но, как ни странно, текстовая область приложения не обновляется. я публикую весь свой код . пожалуйста, помогите мне, так как это проект, который я собираюсь представить в своем университете.вот код ---
import java.net.*; import java.io.*; import javax.swing.*; import java.awt.event.*; import java.awt.Toolkit; class mainServer { public static JTextArea content = new JTextArea(); public static JScrollPane jsp = new JScrollPane(content); public static void main(String args[]) { content.setEditable(false); if(args.length!=1) { System.out.println("Port Number Required"); System.exit(-1); } try(ServerSocket server = new ServerSocket(Integer.parseInt(args[0]))) { while(true) new chatServerThread(server.accept()); }catch(Exception e){e.printStackTrace();} } } class chatServerThread implements Runnable { Socket client; Thread t; String clientName; chatServerThread(Socket socket) { client=socket; t=new Thread(this,"newThread"); t.start(); } public void run() { try { DataInputStream in = new DataInputStream(client.getInputStream()); clientName = in.readUTF(); String s = "Joined"; appendOutput(clientName,s); while(!s.equals("terminate")) { s=in.readUTF(); appendOutput(clientName,s); } }catch(Exception e){e.printStackTrace();} } public void appendOutput(String s1,String s2) { SwingUtilities.invokeLater(new Runnable(){ public void run() { mainServer.content.append(s1+": "+s2); System.out.println(mainServer.content.getText()); } }); } } What I have tried: <pre lang="C#">i also read many questions here , even tried wrapping the update statement in SwingUtilities.invokeLater() but that doesnt helps too
Richard MacCutchan
Какой JTextArea, в чем проблема? В будущем, пожалуйста, не просто сбрасывайте весь свой код и ожидайте, что люди поймут, что происходит и где; предоставьте соответствующие детали, чтобы мы могли хотя бы увидеть, где возникает проблема.
AbhayPrakash
прости за этот глупый поступок. TextArea находится в классе mainServer
AbhayPrakash
и проблема заключается в методе run() класса chatServerThread