Objeto DataTable ou Table (Como utilizar)

3 respostas
F

Pessoal, estou arrancando os cabelos aqui… Preciso utilizar um dos dois componentes Table ou DataTable que existe no NetBeans 5.5.1 com Visual Web Pack, porém, preciso alimentar esta tabela manualmente.

Pego a Table na paleta de objetos, coloco na tela, ele automaticamente cria um tal de DataTable1Model, porém tanto na Table como no DataTable1Model, eu não consegui achar uma forma de alimenta-los. Linhas e colunas.

Alguém pode me explicar? Preciso alimentar manualmente sabe? Enviar valores, criar um while para ir criando linhas novas e alimentando as colunas.

Por favor, se tiver como escrever um exemplo de uso aqui, só peço q seja com o objeto visual…

Obrigado.

3 Respostas

H

O DataTableModel é o “modelo de dados” da Tabela. É nele, e não no table, que você insere os dados.

Primeiro você precisa verificar se este DataTableModel foi associado ao DataTabel, seja no construtor ou através do método setModel:

DataTableModel dtm;
DataTable dt = new DataTable(dtm);

ou

DataTableModel dtm;
DataTable dt = new DataTable();
dt.setModel(dtm);

A partir daí, você vai inserir os dados no DataTableModel, criando arrays ou vectors.

String[] titulos = {"a", "b", "c"};
String[][] dados = {(1, 2, 3), (4, 5, 6)};

dtm = new DataTableModel(dados, titulos);

//ou então (apesar do nome, pode ser usado com arrays também

dtm.setDataVector(dados, titulos);

No caso de Vector, a lógica é a mesma:

Vector titulos;

/*seu vector de pode ser, por exemplo, um Vector de arrays, aí vai da criativadade
*/
Vector dados;
dtm = new DataTableModel(dados, titulos);

//ou então (apesar do nome, pode ser usado com arrays também

dtm.setDataVector(dados, titulos);

Para alterar os valores, é só alterar os dados no Vector ou no array…
Espero ter ajudado…

F

Hadilson, primeiramente, obrigado pela atenção. Preciosíssimos seus exemplos e explicações.

Porém, infelizmente não consegui fazer o que me passou, pois o DataTable que tem no ambiente gráfico do NetBeans (WEB), não possui os metodos que você se referiu

dt.setModel(dtm);

e o

dtm.setDataVector(dados, titulos);

Pelo que imagino, aquela parte: DataTable dt = new DataTable(dtm), já deve ocorrer automaticamente ao colocar o componente na tela não é? pois quando eu pego um DataTable na Paleta do NetBeans e coloco na minha Página Visual, eu percebo que automáticamente ele cria o DataTable1Model, e se eu for no “Layout da Tabela” clicando com a direita nela, percebo que ela ja usa o DataTable1Model como provedor de dados.

Sendo assim, acredito q tanto o DataTable como o DataTable1Model ja sejam instanciados como no seu exemplo na hora que eu os coloquei na tela, não é? Ou estou errado?

Como vocês fariam utilizando os componentes visuais e setando os dados manualmente?

Obrigado.

F

up…

Criado 15 de agosto de 2007
Ultima resposta 17 de ago. de 2007
Respostas 3
Participantes 2