Morte definitiva ao default table model

Você inicializou a lista de linhas? Pq NullPointerException tem um significado bem claro: que ela não foi inicializada. Você deve carregar a lista do banco, e então repassar a lista para seu tablemodel, caso contrário, não funciona mesmo.

Desenhar a tabela é o menor dos problemas. Quando você começar a manter um DefaultTableModel editável, ou precisar personalizar sua tabela com colunas ordenáveis, totais, ícones ou cores ou mesmo ter a coluna de ID escondida, aí conversamos melhor. Todos são problemas incríveis no Default, que são naturalmente resolvidos no seu próprio TableModel.

Além disso, na minha assinatura, tem um link para diversas implementações funcionais de TableModel. Dê uma olhada nessa do Eric:
http://www.guj.com.br/java/225793-exemplo-de-tablemodel#1156821

Vencer a curva de aprendizado é parte do processo. O fato de você perder 1 ou 2 dias aprendendo a usar uma ferramenta da forma correta não é desculpa ou justificativa para permanecer por anos dando murro em ponta de faca da forma incorreta, mesmo que a forma incorreta aparente ser mais fácil. Você vai, sim, perder algumas horas aprendendo a organizar seu projeto de maneira adequada, mas vai ganhar anos de manutenção tranquila.

Vlw parceiro !!
Rs. concordo plenamente contigo. Mas eu sei no fundo que vc teve seus momentos de stress também, por não conseguir ali naquele momento. Mas sei bem do que vc está falando quando diz perder horas estudadndo… !!

Vou verificar sua orientação.
Mas fique certo, meu único objetivo é realmente fazer da forma certa minhas aplicações, pois é algo que amo muito fazer e se amo, tem que ser do jeito certo.

Ah… e vc ainda verá muitos post meus aqui…rs

Mais uma vez muito obrigado.
amigo certa vez me disseram, o GUJ é o melhor lugar para se está, quando se pretende aprender/aprimorar JAVA. Hoje sei por que !!

Vlw muito obrigado !! vamos a luta… ufa lá vai eu mais algumas horas ou dias… sei lá…

Tem como vcs passarem pra mim um exemplo de como
iniciar a lista com dados do DB e essa ser usada na classe TableModel a baixo?

Meus Mestre, coloca esse código em uma lista pra mim


try{ 
   rn.execQuery("select * from dbRais");
     while(rn.rs.next()) { 
           mc.setTxtNome(rn.rs.getString("nome"));
           mc.setTxtRG(rn.rs.getString("rg"));
           mc.setTxtCPF(rn.rs.getString("cpf"));
           mc.setTxtNIS(rn.rs.getString("numNIS"));
           mc.setTxtAnoBase(rn.rs.getString("anobase"));
     }
        }catch(SQLException e){
          JOptionPane.showMessageDialog(null, e);
          }

já entendi o TableModel, agora quero mandar uma Lista de dados pra ele!!

d34d_d3v1l

Obrigado pelo tutorial cara, eu estava mesmo procurando.

Ficou tão bem explicado que consegui fazer funcionar em questão de minutos, sem contar que irá resolver muitos de meus problemas utilizando tabelas.

Abraços.

Muito bom o tutorial, também fiz funcionar aqui…

mas deixa eu ver se entendi, quer dizer que eu terei que fazer uma TableModel para cada novo grid?
não tem como deixar isso mais genérico?

digo isso pelo seguinte, eu estava usando Default Table Model e uma coisa que gostei foi a possibilidade de caso as dimensões da minha tabela mudem ele se adapta… para entender melhor, estou lendo as informações dessas tabelas de um arquivo XML que eh retornado por um Web Service… não eh só isso que o WS retorna, mas eh um dos casos… e ele pode retornar entre várias tabelas diferentes, com dimensões diferentes… o que eu fazia era ler esse XML, primeiramente os campos (colunas) e depois os dados (linhas)… isso está separado por duas TAGs uma e uma então isso pra minha implementação eh indiferente as dimensões da tabela/grid…

esses dados do XML era lidos para um vetor (colunas) e uma matriz (dados)… e aí eu passava isso para o Default Table Model dessa forma:

DefaultTableModel modelo = new DefaultTableModel(dados, colunas); // dados eh uma matriz (String[][]) - e colunas um vetor (String[])
JTable tabela = new JTable(modelo);

por isso não consegui entender direito a vantagem em usar uma TableModel própria ou a desvantagem de usar uma DTM no meu caso… alguém pode me explicar melhor qual seria a real vantagem para mim e como eu resolveria o problema de ter que criar um TableModel para cada grid diferente que eu tiver… são muuuuuitos grid diferentes que retornam do WS…

agradeço a atenção…

ninguém?

Voce pode criar um TableModel generico ou usar um como o ObjectTableModel.

Vini…é bem isso mesmo! Com os exemplos que tem aqui no GUJ só não aprende que ta com preguiça!! :lol:

Boa tarde pessoal, alguém tem algum exemplo de como fazer a classe Cliente?

Sou iniciante e gostaria de começar trabalhando com o modo certo.

fazer a classe cliente?

estude OO cara :slight_smile:
caelum tem uma apostila boa

abrazz

Já estou lendo ela, só que enquanto estudo a teoria eu estou vendo um pouco de parte prática, senão não entra na minha cabeça xD.

Eu dei uma estudada na classe e já entendi melhor ela, o que eu preciso fazer agora é colocar as informações que tenho no banco de dados na tabela através de um ResultSet.

Nessa parte do TableModel, é bom que você entenda encapsulamento antes de tentar implementar, pois mais que você ja queira praticar, entender esse conceito é essencial.

Fique a vontade para perguntar :slight_smile:

Implementei meu próprio TableModel para o meu JTable e funcionou que é uma beleza, muito obrigado pelos exemplos de TableModel. :lol:
Mas, pessoal, e com relação a JComboBox, é legal usar o DefaultComboBoxModel ou tem um modo de implementar um modelo customizado? :shock:
Obrigado. :slight_smile:

[quote=Leandro Rocha]Implementei meu próprio TableModel para o meu JTable e funcionou que é uma beleza, muito obrigado pelos exemplos de TableModel. :lol:
Mas, pessoal, e com relação a JComboBox, é legal usar o DefaultComboBoxModel ou tem um modo de implementar um modelo customizado? :shock:
Obrigado. :slight_smile: [/quote]
Legal esse modelo, vou testar: http://www.guj.com.br/java/263090-resolvidojcombobox-com-implementacao-de-comboboxmodel

Alguém tem mais alguma alternativa para o ComboBoxModel?
Legal: http://www.java2s.com/Tutorial/Java/0240__Swing/JComboBoxUsingtheCustomModel.htm
Vlw :slight_smile:

olá ViniGodoy, tem com vc me da uma ajudinha com os metodos da tablemodel

[quote=ViniGodoy]Você inicializou a lista de linhas? Pq NullPointerException tem um significado bem claro: que ela não foi inicializada. Você deve carregar a lista do banco, e então repassar a lista para seu tablemodel, caso contrário, não funciona mesmo.

Desenhar a tabela é o menor dos problemas. Quando você começar a manter um DefaultTableModel editável, ou precisar personalizar sua tabela com colunas ordenáveis, totais, ícones ou cores ou mesmo ter a coluna de ID escondida, aí conversamos melhor. Todos são problemas incríveis no Default, que são naturalmente resolvidos no seu próprio TableModel.

Além disso, na minha assinatura, tem um link para diversas implementações funcionais de TableModel. Dê uma olhada nessa do Eric:
http://www.guj.com.br/java/225793-exemplo-de-tablemodel#1156821

Vencer a curva de aprendizado é parte do processo. O fato de você perder 1 ou 2 dias aprendendo a usar uma ferramenta da forma correta não é desculpa ou justificativa para permanecer por anos dando murro em ponta de faca da forma incorreta, mesmo que a forma incorreta aparente ser mais fácil. Você vai, sim, perder algumas horas aprendendo a organizar seu projeto de maneira adequada, mas vai ganhar anos de manutenção tranquila.[/quote]

Mas o mais recomendado é criar um modelo pra cada Classe mesmo? não tem uma genérica?
Agradeço desde já

[quote=JavaS]Mas o mais recomendado é criar um modelo pra cada Classe mesmo? não tem uma genérica?
Agradeço desde já[/quote]

para usar o AbstractTableModel corretamente eu vou ter que ter uma classe para cada entidade
por exemplo:

ClienteTableModel
FuncionarioTableModel
PedidoTableModel

e assim por diante