2016-06-07 2 views
0

У меня проблема с удалением старых элементов из моих списков. Я попытался использовать методы clear() и removeAllElements() и removeAll() везде, где мог, но это, похоже, не очистило их.JList не выяснен

Чтобы помочь вам понять ситуацию немного лучше:

d1 является ArrayList, который содержит все доступные устройства в нашей программе.

availList2 и availList3 использование: DefaultListModel.

Мы хотели сделать это так, чтобы пользователь загружал продукты из соответствующего текстового файла, если он сделал это во второй раз, продукты, перечисленные в нашем gui, будут перезаписаны теми, что указаны в исходном текстовом файле. Однако мы получили дубликаты продуктов, хотя мы использовали метод clear() как в d1 (ArrayList), так и в JList.

Любые полезные советы или возможные причины были бы оценены. Заранее большое спасибо.

if(ev.getSource() == load_availables) { 
    int returnVal = chooser.showOpenDialog(mainApp.this); 

    if(returnVal == JFileChooser.APPROVE_OPTION) { 
     d1.returnDevices().removeAll(d1.returnDevices()); 
     availList2.clear(); 
     availList3.clear(); 
     //availList2.removeAllElements(); 
     //availList3.removeAllElements(); 
     File file = chooser.getSelectedFile(); 
     read.ReadDevices(file); 
     for(int i = 0; i < read.Size(); i++) { 
      d1.add_AvailableDevices(read.get(i)); 
     } 

    } 
} 

ответ

1

Если список не очищен, то я хотел бы предложить вам не соответствующую ссылку на DefaultListModel, который используется в JList при вызове методы clear().

Начните с чтения раздела из учебника Swing по телефону How to Use Lists.

Загрузите код ListDemo и играйте с ним. Измените кнопку «Огонь», чтобы использовать метод clear() на DefaultListModel, чтобы доказать, что это все, что вам нужно сделать.

Как только вы увидите, что код работает, вы выясните, как ваш код отличается от рабочей версии ListDemo.

Смежные вопросы