Java 附加到JTextArea
我正在制作服务器端应用程序,但当我试图向Java 附加到JTextArea,java,swing,jtextarea,serversocket,event-dispatching,Java,Swing,Jtextarea,Serversocket,Event Dispatching,我正在制作服务器端应用程序,但当我试图向JTextarea添加文本时,它不起作用。但是,它会打印到控制台 在我添加行serverSocket.accept()之前,它工作得很好 这是我的密码: try { serverSocket=new ServerSocket(4545); LogOutput.append("Seccessfuly connected\n" ); System.out.println("Seccessfuly connected\n" );
JTextarea
添加文本时,它不起作用。但是,它会打印到控制台
在我添加行serverSocket.accept()
之前,它工作得很好
这是我的密码:
try {
serverSocket=new ServerSocket(4545);
LogOutput.append("Seccessfuly connected\n" );
System.out.println("Seccessfuly connected\n" );
StartButon.setEnabled(false);
while(true){
LogOutput.append("waiting for client\n" );
System.out.println("waiting for client\n" );
serverSocket.accept();
LogOutput.append("Client connected to server\n" );
}
}
catch(Exception e){
LogOutput.append("cannot establish connection : "+ e +"\n" );
StartButon.setEnabled(true);
}
从给定的代码片段和您的问题来看,您似乎正在寻找 客户端已连接到服务器\n 要添加到您的文本区域
serverSocket.accept();
LogOutput.append("Client connected to server\n" );
一旦您说出serverSocket.accept(),它将等待客户端连接到达,除非有某个客户端,否则您的下一行代码将不会执行。如果serverSocket.accept是阻塞方法,启动客户端程序,服务器将开始处理下一行代码
从
侦听与此套接字的连接并接受它。该方法会一直阻塞,直到建立连接为止
您完全阻塞了Swing事件线程或EDT。如果您希望Swing GUI与长时间运行的进程协同工作,请从
while(true)
块开始,在后台线程上获取大部分代码。请阅读本教程,了解这一点的原因,以及如何使用对象解决此问题。您在哪里使用JTextArea?
public Socket accept() throws IOException