我使用NETBEANS 7 。我的项目中有JList。这是我的代码
private void dateChooserSelectedDatePropertyChange(java.beans.PropertyChangeEvent evt) {
DefaultListModel model = new DefaultListModel();
listSerialNo = new JList(model);
UpdatePurchase updatePurchase = new UpdatePurchase();
Vector<String> serialNo = new Vector<String>();
serialNo = updatePurchase.getSerialNo(date);
if(serialNo.size()>0){
listSerialNo.setListData(serialNo);
}
else{
model.clear();
this.resetFields();
}
}
如果我写上面的代码,那么列表不显示任何东西&amp;它没有清除JList。但如果我删除
DefaultListModel model = new DefaultListModel();
listSerialNo = new JList(model);
然后列表填充来自vector serialNo的一些数据。
我的问题:
基本上我无法清除jList的内容。请指导我。感谢。
答案 0 :(得分:2)
试试这个 -
listSerialNo.setListData(new Vector());
这将使用空的矢量对象重新设置列表数据。
所以将删除所有列表数据。
答案 1 :(得分:1)
方法setListData
实际上取代了JList
的数据模型。因此,您不会清除当前列表模型,而是清除最初分配的模型(不再使用)。因此,请勿使用setListData
,而是将新元素直接添加到原始模型中。
答案 2 :(得分:1)
您可能已经添加了一个可见的JList组件。在您的代码中,您将创建一个新代码,同时覆盖包含旧代码的字段。因此,您丢失了与旧(和可见)的“连接”。通过更新新的,当您更新错误的时,任何可见的都不会改变。
通过删除这两行,您不再创建新的JList并且正在更新正确的JList。
那么为什么不删除那两行似乎根据你的帖子工作。