Java 是否自动更新JComboBox列表?

Java 是否自动更新JComboBox列表?,java,swing,model-view-controller,server,Java,Swing,Model View Controller,Server,在我正在开发的应用程序中,多个用户可以在服务器上修改一个模型,该模型包含一个对象列表,用户每次对模型进行更改时都会得到更新的模型。 当客户机启动程序时,他可以打开一个JFrame,其中会出现一个JComboBox,在这个组合框中列出服务器上的所有对象。我现在的问题是: 如何使这个JFrame上的列表由它自己更新,这样,如果让我们说,另一个用户从列表中删除了一个对象,该对象将不再显示给同时查看列表的其他用户?我认为您要求的是一个完美的JFrame用例 让我们以您提供的用例为例。在这个场景中,您的服

在我正在开发的应用程序中,多个用户可以在服务器上修改一个模型,该模型包含一个对象列表,用户每次对模型进行更改时都会得到更新的模型。 当客户机启动程序时,他可以打开一个JFrame,其中会出现一个JComboBox,在这个组合框中列出服务器上的所有对象。我现在的问题是:
如何使这个JFrame上的列表由它自己更新,这样,如果让我们说,另一个用户从列表中删除了一个对象,该对象将不再显示给同时查看列表的其他用户?

我认为您要求的是一个完美的JFrame用例

让我们以您提供的用例为例。在这个场景中,您的服务器将充当“观察者”,因为他正在积极地观察您的所有客户机。你的客户将扮演“可观察者”的角色

发生的情况是,您的服务器实际上是向所有客户端注册,以便在发生更改时收到通知。当客户机进行更改时,该客户机将通知向其注册的所有观察者(我们的服务器),然后这些观察者可以将更改提交给客户机


我们可以一起使用一些示例代码,但附带的链接通常非常适合解释设计模式。我认为根据您的用例调整对话可能会有所帮助。

我认为您要求的是一个完美的应用程序用例

让我们以您提供的用例为例。在这个场景中,您的服务器将充当“观察者”,因为他正在积极地观察您的所有客户机。你的客户将扮演“可观察者”的角色

发生的情况是,您的服务器实际上是向所有客户端注册,以便在发生更改时收到通知。当客户机进行更改时,该客户机将通知向其注册的所有观察者(我们的服务器),然后这些观察者可以将更改提交给客户机


我们可以一起使用一些示例代码,但附带的链接通常非常适合解释设计模式。我认为根据您的用例调整对话可能会有所帮助。

您熟悉这一点吗?这可能有助于将更新推送到其他客户机。@Greg Hilston。。。。我同意观察者/可观察到的模式。你的评论是对的……你能回答这个问题来提供更多的细节吗:-)@ZinMinn真棒,谢谢你!仍在试图找出什么时候评论或回答更合适。回答发帖您熟悉这一点可能有助于将更新推送到其他客户端。@Greg Hilston。。。。我同意观察者/可观察到的模式。你的评论是对的……你能回答这个问题来提供更多的细节吗:-)@ZinMinn真棒,谢谢你!仍在试图找出什么时候评论或回答更合适。回答Posted是的,我知道我必须通知用户所做的更改。我的问题是,我不知道如何在客户端实现我的类的模式。假设我有一个类库,它的属性是书籍列表(Book是另一个类)。现在,用户点击GUI上的某个地方,一个JFrar弹出,其中的框位于一个组合框中,列出了我的库类中的所有书籍。现在,另一个用户从列表中删除一本书-如何立即自动更新此组合框,使该书不显示在列表中?我不确定您是否阅读了我的答案。我提供了一个关于实现观察者/可观察模式应该做什么的高级描述。你应该看看我提供的链接,了解与你试图解决的问题无关的模式。一旦你学会了这个模式,将它应用到你的代码中应该会容易得多。是的,我知道我必须通知用户所做的更改。我的问题是,我不知道如何在客户端实现我的类的模式。假设我有一个类库,它的属性是书籍列表(Book是另一个类)。现在,用户点击GUI上的某个地方,一个JFrar弹出,其中的框位于一个组合框中,列出了我的库类中的所有书籍。现在,另一个用户从列表中删除一本书-如何立即自动更新此组合框,使该书不显示在列表中?我不确定您是否阅读了我的答案。我提供了一个关于实现观察者/可观察模式应该做什么的高级描述。你应该看看我提供的链接,了解与你试图解决的问题无关的模式。一旦您了解了模式,将其应用到代码中应该会容易得多。