2011-04-15 153 views
0

我想製作德州撲克局域網遊戲。遊戲流程完成後,我現在使用套接字啓動服務器/客戶端通信。我的問題是這樣的:java - 更新客戶端GUI

在客戶端GUI中更新對錶格(播放器摺疊等)的更改的最佳方式是什麼?在這種情況下有沒有一個有利的概念?

我有一個與表,社區卡,玩家等JPanel - 是否有可能(或一個好主意)定期發送這個JPanel給客戶?

回答

5

爲什麼發送整個jPanel?這是太多的插座。

只需爲每個客戶端GUI發送足夠的信息來重新繪製表格本身。

+1

特別是在處理網絡時,作爲一般規則,您只應發送所需的信息來更新ui。 – joekarl 2011-04-15 15:30:58

0

你想利用SwingUtilities.invokeLater

在您的客戶端代碼,在那裏與服務器在此基礎上要更新你的UI元素傳遞和接收數據,做這樣的事情 -


public void clientSideOfClientServerCommunication(final someClass someData){ 
    SwingUtilities.invokeLater(new Runnable(){ 
    public void run(){ 
     //use someData to update GUI elements. 
    } 
    }); 
}