1

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();
}
4

2 回答 2

2

您需要提供一些集合作为模型的核心,例如 ArrayList 或其他类型的有序列表。这样做,这些方法将开始有意义。

于 2012-05-08T02:02:09.277 回答
0

如前所述,您需要提供数据。组合框最简单的方法是使用 DefaultComboBoxModel ,它在其构造函数中采用 Object[] 。一般来说,上面的前两种方法是为了 1)获取列表中的元素,2)返回列表的大小。

接下来的两个用于跟踪列表中的哪个项目被选中。我建议查看 javadocs。此外,如果您使用 eclipse、netbeans 或 intellij,您应该可以很容易地查看 DefaultComboBoxModel 的源代码,并且这些方法的作用应该很明显。

于 2012-05-08T02:17:39.940 回答