The
DefaultTableModel
klasa jest podklasą klasy
AbstractTableModel
. Jak sama nazwa wskazuje, jest to model tabeli używany przez
gdy programista nie zdefiniował żadnego modelu tabeli. DefaultTableModel przechowuje dane dla JTable w a
Wektor
z
Wektory
.
Chociaż
Wektor
jest starszą kolekcją Java, jest nadal obsługiwana i nie ma problemu z jej użyciem, chyba że dodatkowy narzut spowodowany użyciem kolekcji synchronicznej stanowi problem dla aplikacji Java.
Zaletą korzystania z
DefaultTableModel
ponad zwyczaj
AbstractTableModel
czy nie musisz kodować metod takich jak dodawanie, wstawianie lub usuwanie wierszy i kolumn. Istnieją już w celu zmiany danych przechowywanych w
Wektor
z
Wektory
To sprawia, że jest to szybki i łatwy do wdrożenia model stołu.
Oświadczenie importowe
import javax.swing.table. DefaultTableModel;
Konstruktory
The
DefaultTableModel
klasa ma sześć
. Każdy może być użyty do wypełnienia
DefaultTableModel
na różne sposoby.
Pierwszy konstruktor nie przyjmuje argumentów i tworzy plik
DefaultTableModel
który nie ma danych, zero kolumn i zero wierszy:
DefaultTableModel defTableModel = DefaultTableModel ();
Następnego konstruktora można użyć do określenia liczby wierszy i kolumn
DefaultTableModel
bez danych:
DefaultTableModel defTableModel = DefaultTableModel (10, 10);
Istnieją dwa konstruktory, których można użyć do utworzenia pliku
DefaultTableModel
z nazwami kolumn i określoną liczbą wierszy (wszystkie zawierające wartości null). Jeden używa
Obiekt
tablica do przechowywania nazw kolumn, druga a
Wektor
:
lub
DefaultTableModel defTableModel = DefaultTableModel (columnNames, 10);
Wreszcie są dwa konstruktory używane do zapełniania
DefaultTableModel
z danymi wiersza wraz z nazwami kolumn. Jeden używany
Obiekt
inne tablice
Wektory
:
lub
Przydatne metody
Aby dodać wiersz do
DefaultTableModel
Użyj
addRow
metoda wraz z danymi wiersza, aby dodać:
Aby wstawić wiersz, użyj
insertRow
metoda, określając indeks wiersza do wstawienia i dane wiersza:
Aby usunąć wiersz, użyj
removeRow
metoda określająca indeks wiersza do usunięcia:
defTableModel.removeRow (0);
Aby uzyskać wartość w komórce tabeli, użyj
getValueAt
metoda. Na przykład, jeśli dane w wierszu 2, kolumna 2 zawiera int:
int wartość = tabModel.getValueAt (2, 2);
Aby ustawić wartość w komórce tabeli
setValueAt
metoda z wartością do ustawienia wraz z indeksem wierszy i kolumn:
defTableModel.setValueAt (8888, 3, 2);
Wskazówki dotyczące użytkowania
Jeśli
JTable
jest tworzony za pomocą konstruktora, któremu przekazano dwuwymiarową tablicę zawierającą dane wiersza i tablicę zawierającą nazwy kolumn:
wtedy następująca obsada nie będzie działać:
Środowisko wykonawcze
ClassCastException
zostanie wyrzucony, ponieważ w tym przypadku
DefaultTableModel
jest zadeklarowany jako
w
JTable
obiekt i nie można go rzucić. Można go rzucić tylko na
TableModel
berło. Rozwiązaniem jest stworzenie własnego
DefaultTableModel
i ustaw go jako model
JTable
:
A później
DefaultTableModel
defTableModel
może być użyty do manipulowania danymi w
JTable
.
Aby zobaczyć
DefaultTableModel
w akcji spójrz na
.