Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Tallak

Adicionar dados em JTable

Recommended Posts

Olá pessoal.

 

Estou com dificuldades em adicionar dados na JTable.

 

O código que eu fiz foi esse:

 

public DefaultTableModel getTabela(Cliente cliente) {
        String[] colunas = new String[]{
            "Nome", "Data de Nascimento",
            "Est. Civil", "CPF", "Endereço",
            "RG", "Sexo", "Bairro", "Cidade"
        };
        String[][] obj = new String[][]{};

        DefaultTableModel modelo = new DefaultTableModel(obj, colunas);

        modelo.addRow(new String[] {cliente.getNome(), cliente.getDtnasc(),
             cliente.getEstcivil().toString(),cliente.getCPF(), cliente.getEndereco(),cliente.getRG(),
             cliente.getSexo().toString(), cliente.getBairro(), cliente.getCidade()});

        return modelo;
    }

Essa classe Cliente é uma classe que Seta e Pega dados (get e set).

 

Agora o que me encuca é que ele dá NullpointerException quando chamo esse método.

 

Eu to chamando ele no ActionPerformed de um botão Inserir.

 

tbl.setModel(func.getTabela(cliente));

Nesse caso, quero inserir uma nova linha, mas, quando executar,

ele dá null point exception.

 

Alguém pode me ajudar?

 

Desde já obrigado amigos.

 

:)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie seu proprio modelo, é bem melhor, extenda de AbstractTabelModel, e defina sua fonte de dados, pode ser um array, e você veraq vai ser muito bacana, pq você só precisará adicionar um valor a fonte de dados e notificar o model que a estrutura da tabela deve mudar... dando uma olhada aqui no fórum ou no google você encontrará tutorial q vao lhe explicar como criar..

 

Se tiver encontrando dificuldades poste aqui os avanços e vamos ajudando.. abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uhh.

Quase consegui.

Não usei o implements que você indicou.

Ele deu um erro "É necessária uma view a classe"

 

Mas eu consegui inserir uma linha.

Fiz outro método só para isso.

 

To chamando ele por aqui.

 

tbl.setModel(func.addLinha(cliente));

E o código do método é esse.

 

public DefaultTableModel addLinha(Cliente cliente) {
        DefaultTableModel modelo = getTabela(cliente);
            
            modelo.addRow(new String[] {cliente.getNome(), cliente.getDtnasc(),
            cliente.getEstcivil().toString(),cliente.getCPF(), cliente.getEndereco(),cliente.getRG(),
            cliente.getSexo().toString(), cliente.getBairro(), cliente.getCidade()});
            JOptionPane.showMessageDialog(null, modelo.getRowCount());
            
        return modelo;
    }

Daí o código do getTabela() ficou só assim.

 

public DefaultTableModel getTabela(Cliente cliente) {
        String[] colunas = new String[]{
            "Nome", "Data de Nascimento",
            "Est. Civil", "CPF", "Endereço",
            "RG", "Sexo", "Bairro", "Cidade"
        };
        String[][] obj = new String[][]{};

        DefaultTableModel modelo = new DefaultTableModel(obj, colunas);

        return modelo;
    }

Só pra ele ler e pegar o modelo da tabela.

 

Então. O problema é que ele insere só uma linha lendo o addLinha().

Queria saber como vou fazer para por as linhas uma embaixo da outra.

 

Pois ele tá substituindo a mesma.

 

Obrigado

 

:)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa acho que você ñ acabou seguindo nada que falei...

dá uma olhada nos dois links

http://www.guj.com.br/article.show.logic?id=140

http://www.guj.com.br/article.show.logic?id=147

 

Preste atenção no segundo, ele ensina a criar o que sugeri

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.