Java 同步JList和JComboBox?

Java 同步JList和JComboBox?,java,swing,Java,Swing,可能重复: 你好, 在JavaSwing中,JList和JComboBox在数据方面进行同步的最佳方式是什么,即在任何给定的时间点具有相同的项目列表?基本上,如果我向其中一个添加项目(或从中删除项目),另一个应该自动反映更改。 我尝试过做以下操作,但似乎不起作用: JList list = new JList(); JComboBox comboBox = new JComboBox(); DefaultListModel listModel = new DefaultListModel();

可能重复:

你好,

在JavaSwing中,JList和JComboBox在数据方面进行同步的最佳方式是什么,即在任何给定的时间点具有相同的项目列表?基本上,如果我向其中一个添加项目(或从中删除项目),另一个应该自动反映更改。 我尝试过做以下操作,但似乎不起作用:

JList list = new JList();
JComboBox comboBox = new JComboBox();
DefaultListModel listModel = new DefaultListModel();
// add items to listModel...
list.setModel(listModel);
comboBox.setModel(new DefaultComboBoxModel(listModel.toArray()));

您正在代码中创建两个模型。当您通过传递listModel内容来构造新的DefaultComboxModel时,您正在构造第二个模型,该模型的开头与第一个模型的内容相同。他们不会更新相同的内容。您希望这两个组件共享一个模型。换句话说

JList list = new JList();
JComboBox comboBox = new JComboBox();
DefaultComboBoxModel listModel = new DefaultComboBoxModel();
// add items to listModel...
list.setModel(listModel);
comboBox.setModel(listModel);

您正在代码中创建两个模型。当您通过传递listModel内容来构造新的DefaultComboxModel时,您正在构造第二个模型,该模型的开头与第一个模型的内容相同。他们不会更新相同的内容。您希望这两个组件共享一个模型。换句话说

JList list = new JList();
JComboBox comboBox = new JComboBox();
DefaultComboBoxModel listModel = new DefaultComboBoxModel();
// add items to listModel...
list.setModel(listModel);
comboBox.setModel(listModel);