为什么在我点击startButton连接到服务器(JavaFX)后服务器GUI会冻结?
这是一个交通灯节目。GUI是一个服务器。在GUI上,我使用一个按钮启动服务器,但我的GUI被冻结,因为它正在等待客户端。克莱恩夫妇只是接受者。我知道我应该使用线程,但我不知道如何使用。问题是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
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线程上运行服务器 不管怎样,这里有一个很好的资源