2014-05-14 19 views
0

你好,我正在創建允許上傳文件的軟件,我的軟件有一個聊天客戶端,它將創建一個文件上傳類的實例,這個文件上傳類將從文件選擇器中獲取文件,將其轉換爲字節並將其上傳到sql數據庫。所以基本上我有一個主要的聊天客戶端,其中包含一個文本區域的聊天顯示。我有主要的聊天窗口顯示聯繫人。當一個接觸用戶雙擊聊天客戶端打開了:這個聊天客戶端內發送數據到正在運行的實例

private void jList1MouseClicked(java.awt.event.MouseEvent evt) {          
    // TODO add your handling code here: 
    if (evt.getClickCount() == 2) { 
     String userID = lbluserID.getText(); 
     String selectedContact = jList1.getSelectedValue().toString(); 
     ChatClient chatClientObject = new ChatClient(selectedContact, userID); 
     ChatClient.runchatClient(selectedContact, userID); 

    } 
} 

我把一個按鈕,這使得文件的選擇。 dbconnect類會將文件上傳到服務器,一旦完成,我需要在聊天客戶端文本區域中顯示一條消息,顯示該文件已上傳。我試圖在dbconnect類中創建一個聊天客戶端的實例,然後調用一個方法來輸出這個消息,這會給我帶來什麼錯誤。我真正想要做的是讓我的程序爲用戶點擊的聯繫人打開聊天客戶端,並且能夠將消息返回給相同的聊天客戶端,而不是創建新的實例。

我希望我的問題很清楚,因爲它很難解釋....例如,如果我在主客戶端點擊「Ben」,聊天客戶端將打開「ben」,這個聊天客戶端包含文本區。當我完成上傳由dbconnect類完成的文件時,我想將字符串消息「文件發送」返回到我用「ben」打開的聊天。

+0

我認爲基本上我的問題是如何從其他類的類的運行實例中調用一個方法,而不是創建一個新的實例。 – user3252991

回答

0

你說'我試圖在dbconnect類中創建一個聊天客戶端的實例,然後調用一個方法來輸出這個消息,這會給我帶來錯誤。

不要創建客戶端的新實例來發送文件完成消息,您需要使用在客戶端實例化時創建的同一個實例。因此,在第一次客戶端實例化時,您需要在全局變量中保存該引用。並使用此實例調用方法來顯示消息。

它可以幫助你。

+0

每當用戶在主客戶端的聯繫人列表中雙擊聯繫人時,會創建一個聊天客戶端實例,因此可能會打開許多​​聊天客戶端實例。我將如何使用全局變量來允許從其他類訪問這些實例?我很抱歉,我很困惑。 – user3252991

相關問題