Как очистить данные из JTable?

Я программирую в Netbeans, и у меня есть jTable во фрейме.

В котором я загружаю данные, которые занимают много строк, но затем я загружаю другую таблицу, в которой строк намного меньше.

И когда я запускаю его и загружаю вторую таблицу, там все еще появляются дополнительные строки, которые были в первой таблице. И я хочу просто увидеть 2-й стол.

Я уже пробовал для jTable.removeAll();


person Ignacio Nimo    schedule 03.02.2012    source источник
comment
removelAll() удаляет все компоненты из контейнера и не имеет ничего общего с JTable и его данными. Решение состоит в том, чтобы либо получить TableModel таблицы через getModel() и очистить данные от нее, либо дать JTable новую TableModel. Но прежде всего прочтите руководство по JTable. Там все объяснено, и ваш вопрос предполагает, что вы еще не сделали этот основной шаг. Вы также захотите проверить JTable API и DefaultTableModel, которая является моделью, используемой для вашего JTable.   -  person Hovercraft Full Of Eels    schedule 04.02.2012
comment
Отлично, большое спасибо!   -  person Ignacio Nimo    schedule 04.02.2012
comment
Дубликат stackoverflow.com/questions/3879610/clear-contents -из-jtable   -  person james.garriss    schedule 14.10.2013


Ответы (2)


JTable использует методологию Model/View/Controller, что означает, что класс JTable является одновременно представлением и контроллером, поэтому вам нужно либо заменить TableModel с помощью JTable.setModel(newModel), либо очистить TableModel с помощью JTable.getModel() и очищая модель таким образом.

См. руководство по использованию таблиц в учебниках по JTable.

person Raceimaztion    schedule 03.02.2012
comment
См. также Обзор архитектуры Swing . - person trashgod; 04.02.2012

Лучшее решение вашего вопроса это

private void ClearButtonActionPerformed(java.awt.event.ActionEvent evt) {
    DefaultTableModel model = (DefaultTableModel)UR_TABLEVARIABLENAME.getModel();

    while (model.getRowCount() > 0){
        for (int i = 0; i < model.getRowCount(); ++i){
            model.removeRow(i);
        }
    }
}    
person Saurabh Rd    schedule 12.10.2014