Java DefaultComboxModel和JComboxModel之间的通信

Java DefaultComboxModel和JComboxModel之间的通信,java,swing,jcombobox,Java,Swing,Jcombobox,我使用DefaultComboxModel来管理我应用程序中各种JCombox的数据 我想在数据加载或重新加载或显示加载时禁用这些组合框。。。文本并将指针设置为沙漏 有没有一种方法可以让JComboBox知道模型正在重新加载数据 重新加载发生在单独的线程中。在AbstractListModel中,有一个名为addListDataListenerListDataListener l的函数。现在,您可以实现自己的侦听器,当调用方法fireContentsChangedObject source,in

我使用DefaultComboxModel来管理我应用程序中各种JCombox的数据

我想在数据加载或重新加载或显示加载时禁用这些组合框。。。文本并将指针设置为沙漏

有没有一种方法可以让JComboBox知道模型正在重新加载数据

重新加载发生在单独的线程中。

在AbstractListModel中,有一个名为addListDataListenerListDataListener l的函数。现在,您可以实现自己的侦听器,当调用方法fireContentsChangedObject source,int index0,int index1时,该侦听器将得到通知。这将在后台完成,您不需要这样做

从中删除所有,直到刷新结束一个空

显示仅使用鼠标事件的通知,必须覆盖键盘或基于JXLayer Java6的事件

如果已结束所有数据加载,则将所有数据添加回一个void


我将使用SwingWorker执行后台任务,我将在SwingWorker的后台线程运行时在JComboxes上调用setEnabledfalse,然后在线程完成时重新启用JComboxes。这可以通过向SwingWorker添加PropertyChangeListener来确定,SwingWorker侦听其state属性,并在其为StateValue.DONE时收到通知。请注意,模型本身应该仅在Swing事件线程上更新。例如,如果数据来自数据库,则在后台线程中从数据库获取信息,但将其传递到事件线程上的组合框模型。SwingWorker的process/publish方法对是一个很好的方法。

我的问题是,我的模型没有任何对JComboxes的引用,因此必须接受添加到JComboxes的所有侦听器都可能被触发事件,我指的是干净和舒适的方式