Не могу очистить JList Java - PullRequest
       28

Не могу очистить JList Java

0 голосов
/ 07 августа 2011

Я использую 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();
    }
}  

Если я напишу приведенный выше код, то в списке ничего не отображается, и он не очищает JList.Но если я удаляю

DefaultListModel model = new DefaultListModel();
listSerialNo = new JList(model);

, то список заполняется некоторыми данными из вектора serialNo.

Моя проблема:

  1. Я хочу очистить содержимое списка, если значение даты изменилось и на выбранную дату нет записей.
  2. Также я хочу очистить содержимое списка, когда нажимаю кнопку «Сброс» в моей форме.

По сути, я не могу очистить содержимое jList.Пожалуйста, ведите меня.Спасибо.

Ответы [ 3 ]

2 голосов
/ 07 октября 2013

Попробуйте это-

listSerialNo.setListData(new Vector());

Это приведет к переустановке данных списка с пустым векторным объектом.

, поэтому все данные списка будут удалены.

1 голос
/ 07 августа 2011

Возможно, вы уже добавили компонент JList, который виден.В своем коде вы создаете новый, переопределяя поле, содержащее старый.Поэтому вы потеряли «связь» со старой (и видимой).При обновлении нового ничего не видного не изменится, если вы обновите неправильный.

Удаляя эти 2 строки, вы больше не создаете новый JList и обновляете правильный.

почему бы просто не удалить эти две строки, так как это, похоже, работает в соответствии с вашим постом.

1 голос
/ 07 августа 2011

Метод setListData фактически заменяет модель данных вашего JList. Таким образом, вы очищаете не текущую модель списка, а изначально назначенную (которая больше не используется). Поэтому не используйте setListData, но добавляйте новые элементы непосредственно в исходную модель.

...