DefaultTableModel
класс является подклассом
AbstractTableModel
. Как следует из названия, это табличная модель, которая используется
когда никакая табличная модель специально не определена программистом. DefaultTableModel хранит данные для JTable в
Вектор
из
векторы
.
Хотя
Вектор
это устаревшая коллекция Java, она все еще поддерживается, и нет никаких проблем с ее использованием, если только дополнительные издержки, вызванные использованием синхронизированной коллекции, не являются проблемой для вашего приложения Java.
Преимущество использования
DefaultTableModel
по обычаю
AbstractTableModel
если вам не нужно кодировать такие методы, как добавление, вставка или удаление строк и столбцов. Они уже существуют, чтобы изменить данные, хранящиеся в
Вектор
из
Векторы.
Это позволяет быстро и легко реализовать модель стола.
Импорт заявления
импорт javax.swing.table. DefaultTableModel;
Конструкторы
DefaultTableModel
в классе шесть
. Каждый может быть использован для заполнения
DefaultTableModel
по-разному.
Первый конструктор не принимает аргументов и создает
DefaultTableModel
который не имеет данных, ноль столбцов и ноль строк:
DefaultTableModel defTableModel = DefaultTableModel ();
Следующий конструктор может использоваться для указания количества строк и столбцов
DefaultTableModel
без данных:
DefaultTableModel defTableModel = DefaultTableModel (10, 10);
Есть два конструктора, которые могут быть использованы для создания
DefaultTableModel
с именами столбцов и указанным количеством строк (все содержат нулевые значения). Один использует
объект
массив для хранения имен столбцов, другой
Вектор
:
или
DefaultTableModel defTableModel = DefaultTableModel (columnNames, 10);
Наконец, есть два конструктора, используемые для заполнения
DefaultTableModel
с данными строки вместе с именами столбцов. Один использовал
объект
массивы, другой
векторы
:
или
Полезные методы
Чтобы добавить строку в
DefaultTableModel
использовать
Добавить ряд
метод вместе с данными строки, чтобы добавить:
Чтобы вставить строку используйте
insertRow
метод, указывающий индекс строки для вставки и данные строки:
Чтобы удалить строку, используйте
removeRow
метод, указывающий индекс строки для удаления:
defTableModel.removeRow (0);
Чтобы получить значение в ячейке таблицы, используйте
getValueAt
метод. Например, если данные в строке 2, столбец 2 содержит int:
int value = tabModel.getValueAt (2, 2);
Чтобы установить значение в ячейке таблицы
setValueAt
метод со значением, которое нужно установить вместе с индексом строки и столбца:
defTableModel.setValueAt (8888, 3, 2);
Советы по использованию
Если
JTable
создается с помощью конструктора, которому передается двумерный массив, содержащий данные строки, и массив, содержащий имена столбцов:
тогда следующее приведение не будет работать:
Время выполнения
ClassCastException
будет брошено, потому что в этом случае
DefaultTableModel
объявлен как
в
JTable
объект и не может быть брошен. Это может быть приведено только к
TableModel
интерфейс. Способ обойти это - создать свой собственный
DefaultTableModel
и установить его в качестве модели
JTable
:
Тогда
DefaultTableModel
defTableModel
может использоваться для манипулирования данными в
JTable
.
Чтобы увидеть
DefaultTableModel
в действии взглянуть на
.