为什么在我点击startButton连接到服务器(JavaFX)后服务器GUI会冻结?

为什么在我点击startButton连接到服务器(JavaFX)后服务器GUI会冻结?,javafx,Javafx,这是一个交通灯节目。GUI是一个服务器。在GUI上,我使用一个按钮启动服务器,但我的GUI被冻结,因为它正在等待客户端。克莱恩夫妇只是接受者。我知道我应该使用线程,但我不知道如何使用。问题是GUI冻结。请帮助我 public class Controller { public TextArea meldingPlass; private static int portNr = 5555; public void startServer() throws IOException { S

这是一个交通灯节目。GUI是一个服务器。在GUI上,我使用一个按钮启动服务器,但我的GUI被冻结,因为它正在等待客户端。克莱恩夫妇只是接受者。我知道我应该使用线程,但我不知道如何使用。问题是GUI冻结。请帮助我

public class Controller {
public TextArea meldingPlass;

private static int portNr = 5555;

public void startServer() throws IOException {
    Server cs = new Server();
    cs.connectToServer(portNr);

}
}

//这是我的课

公共类ServerThread扩展线程{

Socket s;
InetAddress ca;


public ServerThread(Socket s)
{
    this.s=s;
    ca=s.getInetAddress();
}

public void run()
{
    try(
            PrintWriter out=new PrintWriter(s.getOutputStream(),true);
            //BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));
            )
    {
        while (true){
            System.out.println(ca.getHostAddress());
            out.println("Status of Server");
        }
      //  s.close();
    }
    catch(Exception e){
        System.out.println(e);
    }


}
}

//这是服务器类 公共类服务器实现可运行{

public  void connectToServer(int portNr){
    try(
        ServerSocket ss = new ServerSocket(portNr);
    )
    {
        while (true)
        {
            System.out.println("In Server - while loop");
           ServerThread st = new ServerThread(ss.accept());
            System.out.println("Client connected. Starting client");
            st.start();

        }
    }
    catch (Exception e){
        System.out.println("Exception occurred when trying to listen on port "
                +portNr+ " or listening for a connection");
        System.out.println(e.getMessage());
    }
}

@Override
public void run() {

}

}您没有显示所有必需的代码。最有可能的情况是,您正在JavaFX线程上运行服务器

不管怎样,这里有一个很好的资源