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