我认为最干净的方法是定义自定义
ComboBoxModel.
这样,您可以为组合框定义数据模型,将创建组合框的部分与数据管理本身分开.
可能使用文本文件是一件好事,因为在插入新条目时您不必修改代码.您可以在ComboBoxModel构造函数中定义读取文件过程.这样,每次运行程序时,您都会找到更新的组合框内容.
如果应用程序本身无法更新内容,则ArrayList不是一个好的选择.如果您对arraylist的内容进行硬编码,则每次需要添加新条目时都将被强制修改代码.
一个小例子:
class YourModel implements ComboBoxModel{
//implements all interface methods required...
@override
public YourModel(String filename)
{
comboBoxItemList = new ArrayList();
// open your file
// add every entry to the the list
}
@override
public Object getElementAt(int index)
{
return comboBoxItemList.get(index);
}
List comboBoxItemList;
}
一旦编写了您需要的内容,您将不再修改代码.并且您也可以为几个不同的JComboBox使用相同的模型.
YourModel model = new YourModel("path_to_a_file");
JComboBox box1 = new JComboBox();
box1.setModel(model);
JComboBox box2 = new JComboBox();
box2.setModel(model);