同步JList和JComboBox?

时间:2011-02-09 04:16:16

标签: java swing

  

可能重复:
  Synchronized JList and 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()));

1 个答案:

答案 0 :(得分: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);