您好,
在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()));
答案 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);