簡體   English   中英

Java GUI 凍結

[英]Java GUI Freezes

我正在嘗試創建一個簡單的 TCP 客戶端服務器應用程序接口,當用戶按下相應的按鈕時,用戶可以在其中啟動或停止服務器我創建了一個 StartServer 按鈕,當用戶按下它應該連接到服務器的按鈕時,我面臨的問題是用戶單擊按鈕注意到發生並且界面停止

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    // TODO add your handling code here:
    DefaultListModel dlm=new DefaultListModel();
    String clientSentence; 
    String capitalizedSentence;
    try {
        welcomeSocket= new ServerSocket(6789);
        dlm.addElement("server started..");            
        dlm.addElement("Server Waiting for Connections on Port 6789");
        jList1.setModel(dlm); 
        displayfull();
         while(true)
        {                
        DataOutputStream outToClient = null;
        try {


            Socket connectionSocket = welcomeSocket.accept();
            //dlm.addElement("Client Connected ");
            BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
            //dlm.addElement("Obtained a handle on Client Input Stream");
            outToClient = new DataOutputStream(connectionSocket.getOutputStream());
            //dlm.addElement("Obtained a handle on Client Output Stream");
            clientSentence = inFromClient.readLine();
            //dlm.addElement("Received: " + clientSentence);
            capitalizedSentence = clientSentence.toUpperCase() + '\n';
            outToClient.writeBytes(capitalizedSentence);
            //dlm.addElement("Message Sent");
        } catch (Exception e) {

        } 

    }               

    } catch (Exception e) {
        dlm.addElement(e);
    }
   jList1.setModel(dlm); 
    displayfull();
}   

在此處輸入圖片說明

正如其他人所暗示的那樣,您正在事件調度線程上花費寶貴的時間。
如果您通讀了有關如何在 Swing 中實現並發的教程,您會發現您獲得了像Swing worker這樣的工具。

Stack Overflow 上有很多這樣的問題,有些問題比其他問題更有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM