| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/01/2010 17:58:47
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 19415
Localização: Curitiba/PR
Online
|
Não use DefaultTableModel!!!! Motivos: 1. É mais difícil que escrever seu próprio TableModel; 2. É mais lento (usa classes sincronizadas); 3. Ocupa mais espaço em memória (duplica seus dados); 4. Deixa o código mais confuso e difícil de manter; 5. Usa casts inseguros; 6. Força que você tenha que exibir informações desnecessárias (como o ID) na tabela, ou controlar o ID numa lista separada; 7. Faz a sua mulher te deixar, o leite da sua geladeira azedar, e pessoas apontarem o dedo para você na rua.
This message was edited 1 time. Last update was at 30/03/2010 08:07:01
|
@ViniGodoy - Lattes
Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!
Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).
Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/01/2010 18:26:00
|
marcobiscaro2112
JWizard
Membro desde: 01/12/2008 11:56:04
Mensagens: 2408
Localização: São Paulo - SP
Offline
|
ViniGodoy wrote:Não use DefaultTableModel!!!!
Motivos:
1. É mais difícil que escrever seu próprio TableModel;
2. É mais lento (usa classes sincronizadas);
3. Ocupa mais espaço em memória (duplica seus dados);
4. Deixa o código mais confuso e difícil de manter;
5. Faz a sua mulher te deixar, o leite da sua geladeira azedar, e pessoas apontarem o dedo para você na rua.
Nossa! O último argumento eu não conhecia ainda...
|
Marco Biscaro.
Seja livre!
Você sabia que provavelmente há milhares de arquivos duplicados no seu computador?
Ei... você está usando DefaultTableModel no seu projeto?? Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/01/2010 21:17:33
|
silviogs
JavaGuru
Membro desde: 09/08/2008 18:04:33
Mensagens: 200
Localização: João Pesoa - PB
Offline
|
Olá amigo
uma rotina que desenvolvi:
chamda da consulta:
agora na tela de consulta:
Boa Sorte!
Silvio Guedes
|
Linux (Ubuntu), Java, NetBeans, PostgreSQL |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/01/2010 21:34:44
|
erico_kl
JavaEvangelist
Membro desde: 10/05/2008 08:59:08
Mensagens: 487
Offline
|
ViniGodoy wrote:5. Faz a sua mulher te deixar, o leite da sua geladeira azedar, e pessoas apontarem o dedo para você na rua.
ah.. então foi por isso..
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/04/2010 22:34:51
|
ceklock
Debugger
Membro desde: 20/04/2009 02:27:54
Mensagens: 69
Localização: Porto Alegre
Offline
|
Bom saber. Nunca vou usar DefaultTableModel.
Quem usa DefaultTableModel não arranja namorada
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/04/2010 23:47:54
|
erico_kl
JavaEvangelist
Membro desde: 10/05/2008 08:59:08
Mensagens: 487
Offline
|
Páscoa.. época de ressurreição..
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/01/2011 22:26:02
|
AssemblyXP
Entusiasta Java
![[Avatar]](/images/avatar/6a878e164861d528050e8fe8d1025267.jpg)
Membro desde: 24/05/2009 21:15:35
Mensagens: 21
Localização: Brasil / Valparaízo-GO
Offline
|
cara nao concordo... uso defeautTableModel e nunca tive problemas.... ela ja contém os métodos nescessários, getSelectedRow, getValueAT, e etc.
realmente nunca tive problema, faço consultas no BD e tenho uma resposta rápida, sem tilts....
e detalhe, uso ela em uma JInternalFrame, integrada.... nunca tive problema.
fiz uma aplicação de quase 50 classes, todas abrindo em uma só janela... e tem umas 15 a 25 tabelas, todas como DefeautTableModel....
so q detalhe, nao sei como criar a minha própria TableModel... nao tenho nem idéia, nunca tive nem o interesse em pesquisar como se faz, por isso penso assim, mais
quem sabe... pode ser que essas opções que o VINY GODOY abordou ai pode ser verdade, mais so se me provarem ao contrário....
se eu ver uma tabela que nao seja DefeautTableModel rodando, e eu ver as diferenças....ai sim...
mais se alguem ai souber como faz uma TableModel... posta ai... pode ate esclarecer a dúvida de outros... q por sinal é a minha agora... irei pesquisar por ai como se faz....
valew galera....
|
Make your own way - <pedro> Pedro - UNIDESC 2011 </pedro> |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/01/2011 23:08:03
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 19415
Localização: Curitiba/PR
Online
|
AssemblyXP wrote:so q detalhe, nao sei como criar a minha própria TableModel... nao tenho nem idéia, nunca tive nem o interesse em pesquisar como se faz, por isso penso assim, mais
Bom, isso explica muita coisa.
Você já consegue criar suas próprias classes de negócio e separa a aplicação em camadas, como rezam as boas práticas de programação?
Ou está rodando selects direto no banco e jogando na tabela, como se fazia lá pelo final dos anos 80?
Se for a primeira opção, acho muitíssimo difícil que você realmente prefira o DefaultTableModel. Também gostaria de saber como você resolveu o problema de, por exemplo, atualizar um registro de um campo, sem exibir seu ID na tabela.
|
@ViniGodoy - Lattes
Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!
Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).
Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/01/2011 09:36:04
|
Marky.Vasconcelos
Moderador
![[Avatar]](/images/avatar/04940fadf3702cbd84b7a48161037c4f.png)
Membro desde: 11/04/2007 18:18:20
Mensagens: 5838
Localização: São Paulo/SP
Offline
|
É, eu também gostaria de saber como voce criou essas 15~25 DefaultTableModels para modificar o conteudo da tabela.
Voce criou tudo isso de DAOs só para preencher a tabela?
E a duvida do ViniGodoy ainda é valida
ViniGodoy wrote:
Também gostaria de saber como você resolveu o problema de, por exemplo, atualizar um registro de um campo, sem exibir seu ID na tabela.
|
Facebook @MarkyHitchhiker +Mark WP: MarkyTech's
Projects:
Android Roadmap - Aprenda Android do inicio (Java é o unico pre-requisito)
Towel ( ObjectTableModel & Swing & Utils )
Tower Defense Game - Java2D [Open-Source] [How-to-play]
Ponto V! - Desenvolvimento de jogos para indies, curiosos e profissionais
DefaultTableModel?! PARE! Não faça isso! Faça melhor!
Dicas: Faça perguntas inteligentes! ; MigLayout ; GridBagLayout (Joke)
Develop games is fantastic, with words you can make worlds!!!
DON'T PANIC!
MarkyHitchhiker's Blog! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/01/2011 14:05:47
|
discorpio
Virtual Machine Man
Membro desde: 06/02/2010 18:46:46
Mensagens: 502
Localização: Rio de Janeiro
Offline
|
Boa tarde a todos.
Também gostaria de saber como voce recupera uma linha de registros sem fazer o casting Isto é presumindo que voce tenha criado entidade de dados, com um bean por exemplo, passando os dados para o DAO.
Com AbstractTableModel, voce já cria um TableModel, onde o armazenamento do JTable pode ser um dessas entidades de dados, onde ao se clicar na linha de um JTable, ele já retorna essa entidade devidamente populada, é muito melhor do que voce ficar fazendo diversos castings desnecessários.
Além disso, se voce tem uma aplicação que acessa 100 tabelas de um banco, voce vai criar 100 classes DefaultTableModels, como o Marky.Vasconcelos citou.
Aqui na Secretaria, nós temos um Mega Banco de dados que acessa simplesmente 325 tabelas, e consegui criar lista de dados configurando uma classe extendida de AbstractTableModel genérica para todas as 325 tabelas, onde elas são acessadas em único JTable.
|
O Senhor é meu Pastor e nada me faltará. (Sl. 23:01) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/01/2011 00:45:56
|
AssemblyXP
Entusiasta Java
![[Avatar]](/images/avatar/6a878e164861d528050e8fe8d1025267.jpg)
Membro desde: 24/05/2009 21:15:35
Mensagens: 21
Localização: Brasil / Valparaízo-GO
Offline
|
correto, eu crio um pacote DAO so para métodos de acessos ao banco, um pacote GETs para armazenar as minhas classes ENTIDADES de GETs and SETTERRS....Encapsulamento e outro pacote, APRESENDAÇÃO, só com as classes de layouts... as que irá aparecer para o usuário....
REEEESUMINDO !!! USO O PADRÃO MVC!!!!
e estava programando em SDI, ião se abrindo JANELAS E JANELAS....era janela pra todo lado.....
agora estou programando em MDI... fica muuuito mais prático...
e atualizo registro, excluo, altero, tudo passando para outra classe, capturando a linha selecionada.... e tambem, nas minhas classes de cadastros de funcionario concursados, terceirizados e etc., os cargos ou salários são listados dentro de uma comboBox apartir de uma consulta em uma tabela específica do BD de acordo para cada cargo.
exemplo....
para eu listar meu funcionário na minha defeautTableModel uso:
pode nao ser a melhor maneira, mais é so assim que eu sei fazer....
outro exemplo, pra eu alterar uma linha selecionada uso:
para excluir a mesma coisa:
e dentro dos meus métodos de alteração, exclusão ou insersão, os próprios métodos ja fazem REFRESH na minha tabela automaticamente.
na execução...
+++ mais eu repito, essas nao devem ser as melhores maneiras de se fazer.... por isso que entrei no fórum, PARA APRENDER.... e APRENDER A ENSINAR....
pq a minha dúvida que tirei aqui no FÓRUM, posso muito bem ensinar a alguém que esta tbm afim de aprender... mais so agora eu me deparei com um problema usando defeautTableModel, problema para imprimir a tabela, ou gerar um relatório....
so consigo imprimir criando uma JTable e adicionando colunas e linhas, através de vectores, sem consultas no BD.
mais eu vou dar mais uma pesquisada..... vou tentar implementar consultar a esses vectores de inserção.
e eu estou muuuuito curioso agora em criar uma TableModel, ou tentar usar uma dessas ai AbstractTableModel ou ObjectTableModel....
mais é isso ai....
e galera, confesso, sou leigo em JAVA... so q eu sei bastante coisa... e me preoculpa nao saber se é padrão o não.
e avaliem esses meus blocos de códigos ai e digam o q vcs acham....
valew pessoal.... e me desculpe ai qualquer coisa.... sou meio retardado as vezes.... tenho até medo de pensar que estou virando NERD.... kkkkk
valew.... lfwssss..........................
pedro.setVisible(false);>
|
Make your own way - <pedro> Pedro - UNIDESC 2011 </pedro> |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/01/2011 10:03:30
|
Marky.Vasconcelos
Moderador
![[Avatar]](/images/avatar/04940fadf3702cbd84b7a48161037c4f.png)
Membro desde: 11/04/2007 18:18:20
Mensagens: 5838
Localização: São Paulo/SP
Offline
|
AssemblyXP wrote:
...
pode nao ser a melhor maneira, mais é so assim que eu sei fazer....
outro exemplo, pra eu alterar uma linha selecionada uso:
para excluir a mesma coisa:
...
Sobre as implementações, AbstractTableModel é só a classe abstrata que deve ser implementada para um TableModel eficiente, o ObjectTableModel já é um TableModel generico que implementei.
E os seus códigos usando um TableModel OO (como o ObjectTableModel por exemplo) seriam o seguinte.
Para alterar
Para excluir
Muito mais simples não?
Fora o fato que voce nem precisa exibir esse campo id na tabela e deixar apenas para uso interno.
|
Facebook @MarkyHitchhiker +Mark WP: MarkyTech's
Projects:
Android Roadmap - Aprenda Android do inicio (Java é o unico pre-requisito)
Towel ( ObjectTableModel & Swing & Utils )
Tower Defense Game - Java2D [Open-Source] [How-to-play]
Ponto V! - Desenvolvimento de jogos para indies, curiosos e profissionais
DefaultTableModel?! PARE! Não faça isso! Faça melhor!
Dicas: Faça perguntas inteligentes! ; MigLayout ; GridBagLayout (Joke)
Develop games is fantastic, with words you can make worlds!!!
DON'T PANIC!
MarkyHitchhiker's Blog! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/01/2011 20:10:32
|
AssemblyXP
Entusiasta Java
![[Avatar]](/images/avatar/6a878e164861d528050e8fe8d1025267.jpg)
Membro desde: 24/05/2009 21:15:35
Mensagens: 21
Localização: Brasil / Valparaízo-GO
Offline
|
carara bicho... sério mesmo q funciona....??!?
vou testar aqui e depois eu respondo....
vlws.....
|
Make your own way - <pedro> Pedro - UNIDESC 2011 </pedro> |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/01/2011 20:20:12
|
AssemblyXP
Entusiasta Java
![[Avatar]](/images/avatar/6a878e164861d528050e8fe8d1025267.jpg)
Membro desde: 24/05/2009 21:15:35
Mensagens: 21
Localização: Brasil / Valparaízo-GO
Offline
|
não funcionou...
da erro nos GET.
todos as 3 linhas de código q vc passou.... listarTodos(), alterar e excluir.
tentei de tudo.... mudei o construtor e tudo, e nada...
vlw....
mais deicha essa duvida pra lah... vou procurar as objectTableModel....
flws....
valew ai a tentativa....
|
Make your own way - <pedro> Pedro - UNIDESC 2011 </pedro> |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/01/2011 20:38:55
|
Eric Yuzo
GUJ Ranger
![[Avatar]](/images/avatar/eb2af3c11079cf65589c05c5240a1541.png)
Membro desde: 25/10/2009 20:36:30
Mensagens: 947
Localização: São Vicente - SP
Offline
|
O exemplo do Mark mostra como ficaria para adicionar e recuperar funcionários de uma tabela com um table model próprio (FuncionarioTableModel, por exemplo). Com DefaultTableModel, só fazendo esses laços gigantes para carregar o Vector com Strings.
Aqui no GUJ mesmo tem vários exemplos de TableModel espalhados pelos tópicos. Pelos links da assinatura do ViniGodoy e do Mark você encontra ótimos exemplos
http://www.guj.com.br/java/149034-duvidas-ao-fazer-uma-consulta#808003
http://www.guj.com.br/java/147521-inserir-dados-da-jtable-no-banco/3#799170
http://www.guj.com.br/java/132698-jtable-removendo-colunas-em-tempo-de-execucao#714736
http://www.guj.com.br/java/225793-exemplo-de-tablemodel#1156821
This message was edited 1 time. Last update was at 04/01/2011 20:39:56
|
O importante mesmo é ser feliz!
DevSV |
|
|
 |
|
|