use*_*450 2 java connection swing chat event-dispatch-thread
每当我点击事件按钮时,程序就会没有响应我的代码是否有问题?
void btnConnectActionPerformed(java.awt.event.ActionEvent evt){
try{
btnSend.setEnabled(true);
ServerSocket serverSocket = new ServerSocket(4446);
Scanner serverType = new Scanner(chatTxt.getText());
Socket clientSocket = serverSocket.accept();
InputStreamReader isr = new InputStreamReader(clientSocket.getInputStream());
BufferedReader br = new BufferedReader(isr);
PrintStream ps = new PrintStream(clientSocket.getOutputStream());
}catch (Exception ex){ex.printStackTrace();}
}
Run Code Online (Sandbox Code Playgroud)
不,代码没有错,除了你在执行一个耗时的任务Event Dispatching Thread
.
这将阻止UI更新,因为EDT
它负责处理绘画更新以及处理键盘和鼠标事件处理.
如前所述,请查看Swing中的Concurrency以获取更多详细信息.