Boa tarde,
Eu tenho um JTable, e nela irá mostras as pessoas cadastradas no sistema.
Eu cria a classe PessoaPojo.
No JTable quero que apareceça duas colunas, o nome e o nascimento.
Detalhe, quando eu insiro os dados na JTable eu PRECISO passar o objeto da classe PessoaPojo.
Atualmente só consigo exibir um destes, o nome, eu sobreescrevi o método toString, para exibir o nome na minha classe pojo.
Existe uma forma de usar um toArray, algo que faça exibir o que desejo?
Fui claro?
Obrigado.
Faz uma classe que extends JTable la vc escreve um método onde voce recebe uma lista de objetos esse método vai precisar pegar a estrutura da classe os Annotations por exemplo para popular os nomes das colunas da sua tabela, mepeia todos os métodos get por exemplo e execute-os para popular uma linha de sua tabela, faz isso dentro de um laço assim voce vai populando todas as linhas de sua tabela de acordo com o numeros de objetos da sua lista, feito isso você instancia essa sua classe que extends JTable e adiciona no seu projeto passando como parametro a lista de objetos da classe que voce tem a partir de uma consulta no banco
Assim voce consegue popular qualquer JTable da sua aplicação com nome de colunas, e registros apenas instanciando essa classe.
deu pra intender?? :lol:
qualquer duvida posta ae
[quote=furacao123]Faz uma classe que extends JTable la vc escreve um método onde voce recebe uma lista de objetos esse método vai precisar pegar a estrutura da classe os Annotations por exemplo para popular os nomes das colunas da sua tabela, mepeia todos os métodos get por exemplo e execute-os para popular uma linha de sua tabela, faz isso dentro de um laço assim voce vai populando todas as linhas de sua tabela de acordo com o numeros de objetos da sua lista, feito isso você instancia essa sua classe que extends JTable e adiciona no seu projeto passando como parametro a lista de objetos da classe que voce tem a partir de uma consulta no banco
Assim voce consegue popular qualquer JTable da sua aplicação com nome de colunas, e registros apenas instanciando essa classe.
deu pra intender?? :lol:
qualquer duvida posta ae[/quote]
Voce nao quiz dizer exatamente como o ObjectTableModel funciona?
Mark_Ameba
PQP QUE TESÃO ESSA PARADA!
Cara, na real, muito massa essa parada, fiquei de cara ein! Eu estava me matando aqui, que mole isso ein!
Show de bola, muito obrigado mesmo!
Quase lá…
Surgiu um problema sério aqui agora.
Eu consegui exibir tranquilo, porém as minhas tabelas na última coluna eu coloco um JLabel com um ícone de excluir, e nele eu faço uma ação pra remover aquele objeto do banco de dados.
Minha questão é: Como crio agora uma coluna nesse TableModel do Mark Utils?
[EDITADO: Novo daqui para baixo]
Detalhe:
tenho esta linha, que traz o nome do produto, eu quero uma coluna chamada Delete, que vem vazio, como faço isso? quero ela vazia.
ObjectTableModel<ProdutoPojo> tableModel = new ObjectTableModel<ProdutoPojo>(resolver, "nmProduto");
Não cheguei a implementar isso :oops:
Mas não serveria voce clicar com o botao direito na tabela abrir um pop-up menu e com a opção excluir? Ou então criar um KeyListener pra ver a tecla delete pressionada e apagar?
Mas o que voce quer é só uma coluna vazia? Acho que posso fazer isso.
[quote=Mark_Ameba]Não cheguei a implementar isso :oops:
Mas não serveria voce clicar com o botao direito na tabela abrir um pop-up menu e com a opção excluir? Ou então criar um KeyListener pra ver a tecla delete pressionada e apagar?[/quote]
Acho que me expressei mal.
Esqueça excluir no momento.
Preciso destas colunas:
Nome | Outra Coluna Que NÃo está no Pojo
Como faço?
eu fiz uma gambiarra e funcionou, em meu pojo apenas coloquei um atributo com o nome vazio e botei la aquela annotation. ai coloquei ele como FieldResolver, e deu certo.
Mas é muita gambiarra, criar um atributo só para aparecer, existe outra maneira?
Eu criei um modo agora… voce pode passar blank como coluna e fica uma em branco ( “nmProduto,blank:Titulo,outroAtributo,blank”)
Vou fazer o upload desse ultimo agora.
E sobre a coluna que não é da POJO… ela é da onde então?
Eu tinha pensado nesse caso a muito tempo mas nao vi um caso que realmente fosse necessario ter uma coluna que nao fosse do objeto. No maximo o atributo dos atributos dos objetos (tipo getEmpresa().getRazaoSocial()) mas isso eu implementei.
[quote=Mark_Ameba]Eu criei um modo agora… voce pode passar blank como coluna e fica uma em branco ( “nmProduto,blank:Titulo,outroAtributo,blank”)
Vou fazer o upload desse ultimo agora.
E sobre a coluna que não é da POJO… ela é da onde então?
Eu tinha pensado nesse caso a muito tempo mas nao vi um caso que realmente fosse necessario ter uma coluna que nao fosse do objeto. No maximo o atributo dos atributos dos objetos (tipo getEmpresa().getRazaoSocial()) mas isso eu implementei.[/quote]
A coluna que eu quero que você implemento como Blank, eu vou usar para por um botão para exclusão da linha. Entendeu?
Estou no aguardo do upload.
Obrigado!
Como a internet aqui ta um lixo vou postar o link por que ta dificil editar no wordpress… mas esses fontes agora tem a coluna em blank. Apenas precisa deixar blank como eu disse acima.
Novos links no outro post.
[quote=Mark_Ameba]Como a internet aqui ta um lixo vou postar o link por que ta dificil editar no wordpress… mas esses fontes agora tem a coluna em blank. Apenas precisa deixar blank como eu disse acima.
http://www.4shared.com/file/113476060/645cc80c/_2__mark-utils.html
http://www.4shared.com/file/113476105/43aef132/_2__mark.html
Se voce me explicar seu problema posso tentar implementar algo pra voce. Mas se quiser acho que a unica coisa que voce precisa fazer é implementar FieldAccessHandler e passar por parametro no FieldResolver.
[/quote]
Problemas…
isto não funcionou, erro: java.lang.NoSuchFieldException: blank
tableModel = new ObjectTableModel<ProdutoPojo>(resolver, "nmProduto,blank:Deletar");
Porém, assim funcionou:
tableModel = new ObjectTableModel<ProdutoPojo>(resolver, "nmProduto,blank");
Foi mal… deixei um erro mas já posto a versão corrigida.
[quote=Mark_Ameba]Ta ai.
Sources:
http://www.4shared.com/file/113484802/fa420044/mark-utils.html
Jar:
http://www.4shared.com/file/113484825/5610f765/mark.html
[/quote]
Show de bola.
Fico te devendo essa ein, ótima API, meus parabéns.
Já vou espalhar 
ty 
Eu só decedi retirar a parte do meu sistema que da pra todo mundo usar, separar nesse projeto e ajudar as pessoas.
Idéias são bem vindas. ^^
[quote=Mark_Ameba]ty 
Eu só decedi retirar a parte do meu sistema que da pra todo mundo usar, separar nesse projeto e ajudar as pessoas.
Idéias são bem vindas. ^^[/quote]
Fala Mark, estou aqui denovo, surgiu uma dúvida agora, e tenho duas alternativas, gostaria de saber qual delas é a melhor.
Eu tenho uma classe POJO chamada VendedorPOJO(Este é o vendedor), e outra chamada VendaPOJO (Esta é a venda, nela eu digo quem é o vendedor com um atributo do tipo integer chamado idVendedor).
A QUESTÃO:
Preciso mostrar na minha tabela a data da venda (VendaPOJO) e o nome do vendedor (O idVendedor está na VendaPOJO, mas o nmVendedor está na VendedorPOJO).
Consegui duas soluções:
- Ao invés de armazenar o idVendedor, armazenar o VendedorPojo, porém, precisarei fazer SQL’s ao criar estes objetos (ACHO QUE ESTE é O MELHOR) [NA HORA DE POR NA TABELA EU BUSCO COM O PARENT, CORRETO?];
ou
- Fazer um atributo chamado nmVendedor na classe VendaPOJO e armazenar os dados nele (ESSE ACHO PIOR)
Você acha que existe outro meio de fazer isto? qual destes você me indica?
Obrigado amigo!
Eu indico manter a referencia a um VendedorPOJO invés de só o id parece mais OO.
Dai pra tabela voce ia passar algo como:
(VendaPOJO.class, “vendedor.nome”)
Voce esta usando Hibernate? Ou SQL puro?
Outra forma é ter um objeto que representa os dados. Voce nem precisa ter todos dados da Venda nem de Vendedor, apenas aqueles para aparecer na tabela e dados adicionais como ID se voce quiser pegar da tabela esse objeto e pegar o respectivo objeto como Venda ou Vendedor.
É a unica maneira que vejo para não ter que alterar seus POJOs.
PS: Voce coloca POJO no final das suas classes de modelo mesmo?
Não uso Hibernate, eu ia utilizar, mas nunca havia mechido e precisava fazer este programa meio rápido (2 meses no máximo)
Ai até eu aprender Hibernate bem, complica um pouco, mas no futuro quero migrar ele.
Como assim?
Eu possuo uma pacote POJO, onde tenho os objetos como se fossem as tabelas do banco, e tenho um pacote DAO onde efetuo as operações passando estes POJOs como parâmetros.
[quote]Outra forma é ter um objeto que representa os dados. Voce nem precisa ter todos dados da Venda nem de Vendedor, apenas aqueles para aparecer na tabela e dados adicionais como ID se voce quiser pegar da tabela esse objeto e pegar o respectivo objeto como Venda ou Vendedor.
É a unica maneira que vejo para não ter que alterar seus POJOs. [/quote]
Veja se entendi. Criar um objeto o qual irei colocar apenas o que eu quero que exiba na tabela, não sendo necessariamente o meu POJO?
Se for isso seria legal, não havia pensado nisso! Fica simples e não preciso alterar muito meus POJOs
Outra pergunta. Sobre os meus POJOs, quando há ligações de FKs eu uso apenas os IDs como int em meu POJO, o correto é usar a referência do outro POJO, ou é indiferente?
Eu perguntei sobre usar POJO no final dos nomes por curiosidade mesmo.
É que eu não chamaria as classes de VendaPOJO e VendedorPOJO. Apenas Venda e Vendedor. Mas isso é questão do programador e não altera nada o resultado.
E é isso mesmo que voce entendeu. Fora os dados para a tela pode guardar também os ids dos objetos que esse objeto representa. Assim fica fácil obter o objeto original no banco.
Como eu uso o hibernate ele já faz essa parte das FKs por mim. Eu mantenho a referencia mas no banco guarda apenas o id como FK.
Voce pode guardar a referencia mas no banco manter a FK e sempre buscar e setar o objeto correto ao carregar.
Eu uso o POJO no final sim, sei la porque, me acostumei a usar, haha.
Maravilha! 
Eu decidi fazer da melhor forma, ao invés de armazenar só os IDs, armazenar o objeto, fica muito melhor!
Mas obrigado!
Outra coisa, parabéns pelo Formatter da sua API, agora precisei usar, show de bola!
O conteúdo do seu site está excelente, exemplo simples e que ajudam bastante.