JComboBox从数据库中检索信息。添加数据后,列表应立即更新。
我知道我需要fireContentsChanged
来更新值。我不确定在方法上应该做些什么。任何指导将不胜感激!
class ComboModel extends AbstractListModel implements ComboBoxModel
{
ArrayList list = new ArrayList();
@Override
public Object getElementAt(int arg0) {
return null;
}
@Override
public int getSize() {
return list.size();
}
@Override
public Object getSelectedItem() {
}
@Override
public void setSelectedItem(Object arg0) {
}
}
stockListComboBox = new JComboBox();
ComboModel model = new ComboModel();
stockListComboBox.setModel(model);
try
{
// Database stuffs
}
catch(Exception e)
{
e.printStackTrace();
}
答案 0 :(得分:2)
您需要提供一些集合作为模型的核心,比如ArrayList或其他类型的有序列表。这样做,方法将开始有意义。
答案 1 :(得分:0)
如上所述,您需要提供数据。组合框最简单的方法是使用DefaultComboBoxModel,它在其构造函数中使用Object []。一般来说,上面提到的前两种方法是为了1)获取列表中的元素,2)返回列表的大小。
接下来的两个用于跟踪列表中的哪个项目被选中。我建议看看javadocs。此外,如果您正在使用eclipse,netbeans或intellij,您应该可以非常轻松地查看DefaultComboBoxModel的源代码,并且应该明显看出这些方法正在做什么。