2011-02-09 25 views
0

可能重复:
Synchronized JList and JComboBox?同步JList和JComboBox?

你好,

在Java Swing的,什么是对一个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())); 

回答

3

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

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