使用新值填充JComboBox

时间:2014-08-18 07:50:51

标签: java swing jcombobox

目前我正在填充我的JComboBox:

countryBox = new JComboBox(countryList.toArray(new String[countryList.size()]));

但是,在使用我的程序时,countryList会发生变化,我想以不同的方式填充我的JComboBox。我试图用这个动作改变我的JComboBox:

countryBox.addActionListener(new ActionListener() {
   countryBox = new JComboBox(countryList.toArray(new String[countryList.size()]));
}

但是,它不会改变它的值。对我来说,countryBox似乎预先填充了之前的数据。任何建议我能做什么?

感谢您的回答!

1 个答案:

答案 0 :(得分:7)

不要创建新的JComboBox,创建新模型

DefaultComboBoxModel model = new DefaultComboBoxModel(countryList.toArray(new String[countryList.size()]));
countryBox.setModel(model);

您可以创建自己的ComboBoxModel,可以代理您当前的List,但这取决于您。

仔细查看How to Use Combo Boxes了解更多详情