Как ограничить размер JTable и его модель внутренней таблицы - PullRequest
1 голос
/ 26 ноября 2010

У меня есть JTable, использующее DefaultTableModel в качестве внутренней модели данных. Он получит пакет из сети и покажет пакет в JTable. Теперь я хочу ограничить размер модели данных, чтобы он содержал только самые новые пакеты и отбрасывал самые старые, но DefaultTableModel использует dataVector типа Vector, который не имеет ограничения по размеру. Кто-нибудь может помочь? Спасибо!

1 Ответ

3 голосов
/ 26 ноября 2010

Если вы всегда вставляете новые строки в верхней части таблицы, вы можете легко выполнить проверку TableModel и сделать это вручную:

 model.insertRow(0,rowData);
 while (model.getRowCount() > myMaxRowCount) {
    model.removeRow(model.getRowCount()-1);
 }

Другой вариант будетпоместите этот процесс в расширение DefaultTableModel (или даже AbstractTableModel, что позволит вам отказаться от Vector для чего-то более современного).Модель может содержать значение maxRowCount, которое вы хотите сохранить, и затем вы можете реализовать новый метод updateModel, который будет обрабатывать add новых данных и remove старых.

...