我认为最干净的方法是定义一个定制ComboBoxModel。
通过这种方式,您可以为组合框定义数据模型,从数据管理本身中分离创建组合框的部分。
可能使用文本文件是一件好事,因为插入新条目时不必修改代码。您可以在ComboBoxModel构造函数中定义读取文件过程。这种方式每次运行程序时都会发现更新的组合框的内容。
如果内容不能被应用程序本身更新,ArrayList不是一个好的选择。如果对硬编码列表的内容进行硬编码,则每次需要添加新条目时都会被迫修改代码。
一个小例子:
class YourModel implements ComboBoxModel{
//implements all interface methods required...
@override
public YourModel(String filename)
{
comboBoxItemList = new ArrayList<String>();
// open your file
// add every entry to the the list
}
@override
public Object getElementAt(int index)
{
return comboBoxItemList.get(index);
}
List<String> comboBoxItemList;
}
一旦写入你需要什么,你就不会再对修改代码。你也可以为几个不同的JComboBox使用相同的模型。
YourModel model = new YourModel("path_to_a_file");
JComboBox box1 = new JComboBox();
box1.setModel(model);
JComboBox box2 = new JComboBox();
box2.setModel(model);
谢谢你的确很有帮助。 –
考虑使用已实现有用方法的'DefaultComboBoxModel'。 – naXa