我正在尝试在java中创建一个聊天程序,但是当我运行服务器表单时出现问题,我以前绘制的组件不会出现。
这是我在表单运行中使用的代码:
public void run() {
Server s = new Server();
s.setVisible(true);
// Etablir la connexion
try
{
ServerSocket ecoute;
ecoute = new ServerSocket(1111);
Socket service = null;
System.out.println("Serveur en attente d'un client !");
while(true)
{
service = ecoute.accept();
System.out.println("Client connécté !");
DataInputStream is = new DataInputStream(service.getInputStream());
s.jTextArea1.setText("Client dit : " + is.readUTF().toUpperCase());
service.close();
}
}
catch(IOException e)
{
e.printStackTrace();
}
}
答案 0 :(得分:1)
你说这个代码运行时没有任何反应。 public void run()
方法的存在告诉我这是一个线程,或者至少是Runnable
。
由于while(true)
,如果此线程没有以正确的方式启动,它将不会独立运行;那就是它会占用整个程序。
请致电thread.run();
,而不是致电thread.start();
。在启动一个与主线程并行运行的新线程之后,这将为您调用run方法。
如果此代码不在某个帖子中,并且您只是偶然使用了public void run()
,那么它仍会为您提供相同的问题。
有关详细信息,请参阅Documentation on Threads