【问题标题】:send data to running instance将数据发送到正在运行的实例
【发布时间】:2014-07-02 21:49:22
【问题描述】:

你好我正在创建允许上传文件的软件,我的软件有一个聊天客户端,它将创建一个文件上传器类的实例,这个文件上传器类将从文件选择器中获取文件,将其转换为字节和上传到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”打开的聊天中。

【问题讨论】:

  • 我想基本上我的问题是如何从另一个类调用一个类的运行实例中的方法而不是创建一个新实例。

标签: java class methods instance


【解决方案1】:

你说'我试图在 dbconnect 类中创建一个聊天客户端的实例,然后调用一个方法来输出消息,但这给了我错误。'

不要创建新的客户端实例来发送文件完成消息,您需要使用在客户端实例化时创建的相同实例。因此,在客户端第一次实例化时,您需要将该引用保存在全局变量中。并调用使用该实例的方法来显示消息。

它可以帮助你。

【讨论】:

  • 每次用户在主客户端中双击其联系人列表中的联系人时,都会创建一个聊天客户端实例,因此可能会打开许多​​聊天客户端实例。我将如何使用全局变量来允许从其他类访问这些实例?对不起,我很困惑。
猜你喜欢
  • 2016-01-17
  • 2020-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-15
  • 1970-01-01
相关资源
最近更新 更多