Carregar ArrayList em JTable

5 respostas
C

Boa tarde Pessoal

Sou iniciante e preciso desenvolver uma aplicação de automação comercial simples, mas estou com uma dificuldade na JTable.
Entre as operações do sistema, tenho a consulta de produtos, onde o usuário pode consultar esses produtos pela classificação (BEBIDAS, CIGARROS, etc), oresultado deve ser exibido em uma tabela com Codigo, Descricao e Preco do produto, até o momento eu fiz a conexão ao banco, fiz o select o resultado eu jogo em um ArrayList com o ResultSet, até aí ta blz! o problema é que preciso de uma tabela, ja que os resultados ja estão no ArrayList queria saber se tenho como passar esse ArrayList para JTable.

Minha consulta está da seguinte forma

String str1 = "Select * from PRODUTOS where CLASSIFICACOES = " + ResultadoPesquisaClassificacoesID.getText();
            ResultSet rs1 = cnn.ExecutarResult(str1);
            System.out.println(str1);
            List<String> ArrayLista = new ArrayList<String>();
            while(rs1.next()){
                ArrayLista.add(rs1.getString("DESC_PROD"));
            }

Desenhei a tabela pelo NetBeans e criei um botão para carregar os dados na Tabela, teria como passar esse ArrayList para a coluna Descricao e criar mais 2 ArrayLists com os dados de Codigo e Preço e passar nas suas respectivas colunas da Table?

Obrigado

Carrera

5 Respostas

R

Você cria uma variável DefaultTableModel model = new DefaultTableModel();
Para adicionar o ArrayList em uma JTable, você pode fazer assim:

private void adicionarLinhas(Object obj) {
        this.model.addRow(new Object[]{obj.getMetodo1(), obj.getMetodo2()});
    }

E no botão que carrega o ArrayList, você pode fazer assim:

model = (DefaultTableModel) jTable1.getModel();

this.adicionarLinhas(LISTA COM OS DADOS);

Espero ter ajudado.

M

Sugiro, de verdade, que fuja com todas as suas forças de DefaultTableModel.

Ao invés disso, extenda AbstractTableModel e crie seu próprio modelo ou pesquise sobre o ObjectTableModel, do usuário Mark_Ameba aqui no fórum.

M

Com o ObjectTableModel voce nao precisa ter uma List voce pode ter uma List por exemplo e escolher para mostrar apenas a descrição na JTable. Da uma olhada ta na minha assinatura.

C

Desculpa a ignorancia, mas me corrija se estiver errado, nesse caso tenho uma tabela PRODUTOS no meu banco, com varios campos, digamos que 5 campos por exemplo, eu criando um List será carregado na List todos os dados? como se fosse um Array multidimensional? e ai assim, eu passaria somente as informações dos campos necessáris para a Table?

M

Nao exatamente um array multidimensional, é um array de objetos.
Mas via parametros voce escolhe qual os atributos que voce quer mostrar na JTable.
Mesmo assim todos os dados estão lá, então se voce mostra só a descrição em um evento voce pode pegar a linha selecionada da tabela e pegar o Id dela por exemplo que está no objeto mas nao mostra na tabela.

Criado 9 de dezembro de 2009
Ultima resposta 11 de dez. de 2009
Respostas 5
Participantes 4