3 回答
TA贡献1827条经验 获得超8个赞
组合框被赋予从列表派生的数组。之后添加到列表中不会改变数组值(数组是固定长度值),
还有一个JComboBox
带有Vector
参数,允许添加(与数组相反)。
然而,最好的参数是最高级别JComboBox
的。ComboBoxModel<E>
有一个默认实现DefaultComboBoxModel
:
DefaultComboBoxModel<String> model = new DefaultComboBoxModel<>(JOB_TYPE); model.addElement("custom0"); model.addElement("custom1"); combobox = new JComboBox(model);
TA贡献1820条经验 获得超10个赞
您可以像这样初始化您的类,以便在初始化时保留所有作业,allJobs而不是仅存在于JComboBoxJamie 解决方案中的自定义作业。您还可以在构造函数内完成实例字段的所有初始化:
class Main {
private static final List<String> FIXED_OPTIONS = Arrays.asList("fixed0", "fixed1", "fixed2");
private List<String> allJobs = new ArrayList<>(FIXED_OPTIONS);
{
int count = 6;
for (int i = 0; i < count; i++) {
allJobs.add("custom" + i);
}
}
private JComboBox jobType = new JComboBox(allJobs.toArray());
}
TA贡献1880条经验 获得超4个赞
可以看一下源码:JComboBox
181: /**
182: * Constructs JComboBox with specified list of items.
183: *
184: * @param itemArray array containing list of items for this JComboBox
185: */
186: public JComboBox(Object[] itemArray)
187: {
188: this(new DefaultComboBoxModel(itemArray));
189:
190: if (itemArray.length > 0)
191: setSelectedIndex(0);
192: }
构造函数创建 DefaultComboBoxModel 的新实例。
添加回答
举报