Tallak 0 Denunciar post Postado Junho 21, 2010 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
Giovanni Ritchie 0 Denunciar post Postado Junho 22, 2010 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
Tallak 0 Denunciar post Postado Junho 22, 2010 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
Giovanni Ritchie 0 Denunciar post Postado Junho 22, 2010 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