o
DefaultTableModel
classe é uma subclasse do
AbstractTableModel
. Como o nome sugere, é o modelo de tabela usado por um
quando nenhum modelo de tabela é definido especificamente pelo programador. O DefaultTableModel armazena os dados para a JTable em um
Vetor
do
Vetores
.
Apesar de
Vetor
é uma coleção Java herdada, ainda é suportada e não há problema em usá-la, a menos que a sobrecarga adicional causada pelo uso de uma coleção sincronizada seja um problema para seu aplicativo Java.
A vantagem de usar o
DefaultTableModel
sobre um costume
AbstractTableModel
é que você não precisa codificar os métodos como adicionar, inserir ou excluir linhas e colunas. Eles já existem para alterar os dados mantidos no
Vetor
do
Vetores.
Isso o torna um modelo de tabela rápido e fácil de implementar.
Declaração de importação
importar javax.swing.table. DefaultTableModel;
Construtores
o
DefaultTableModel
classe tem seis
. Cada um pode ser usado para preencher o
DefaultTableModel
De maneiras diferentes.
O primeiro construtor não aceita argumentos e cria um
DefaultTableModel
que não possui dados, zero colunas e zero linhas:
DefaultTableModel defTableModel = DefaultTableModel ();
O próximo construtor pode ser usado para especificar o número de linhas e colunas de um
DefaultTableModel
sem dados:
DefaultTableModel defTableModel = DefaultTableModel (10, 10);
Existem dois construtores que podem ser usados para criar um
DefaultTableModel
com nomes de colunas e um número especificado de linhas (todas contendo valores nulos). Um usa um
Objeto
matriz para armazenar os nomes das colunas, o outro
Vetor
:
ou
DefaultTableModel defTableModel = DefaultTableModel (columnNames, 10);
Finalmente, existem dois construtores usados para preencher o
DefaultTableModel
com dados da linha junto com os nomes das colunas. Um usado
Objeto
matrizes, o outro
Vetores
:
ou
Métodos úteis
Para adicionar uma linha ao
DefaultTableModel
use o
adicionar linha
junto com os dados da linha para adicionar:
Para inserir uma linha, use o
insertRow
, especificando o índice de linha a ser inserido e os dados da linha:
Para excluir uma linha, use o
removeRow
, especificando o índice da linha a ser excluída:
defTableModel.removeRow (0);
Para obter um valor em uma célula da tabela, use o
getValueAt
método. Por exemplo, se os dados na linha 2, coluna 2 contiverem um int:
valor int = tabModel.getValueAt (2, 2);
Para definir um valor em uma célula da tabela
setValueAt
método com o valor a ser definido junto com o índice de linha e coluna:
defTableModel.setValueAt (8888, 3, 2);
Dicas de uso
Se um
JTable
é criado usando o construtor que recebe uma matriz bidimensional que contém os dados da linha e uma matriz que contém os nomes das colunas:
o seguinte elenco não funcionará:
Um tempo de execução
ClassCastException
será lançado porque, neste caso, o
DefaultTableModel
é declarado como
no
JTable
objeto e não pode ser convertido. Só pode ser transmitido para o
TableModel
interface. Uma maneira de contornar isso é criar seu próprio
DefaultTableModel
e configurá-lo para ser o modelo do
JTable
:
Então o
DefaultTableModel
defTableModel
pode ser usado para manipular os dados no
JTable
.
Para ver o
DefaultTableModel
em ação, dê uma olhada no
.