| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/03/2008 11:59:40
|
arthurthiago
Debugger
![[Avatar]](/images/avatar/b60adcb70283fea07596c9a73ddfb899.jpg)
Membro desde: 06/02/2007 18:17:34
Mensagens: 72
Offline
|
Fala galera!
Estou tendo um problema para gerenciar a adição/remoção de uma coluna dentro de uma JTable. O que acontece é que minha tabela tem que ser dinamicamente acrescentada de linhas e/ou colunas de acordo com o que o usuario quer.
Os problemas começam quando eu excluo e logo depois adiciono uma coluna, vou dar um exemplo para ficar mais claro:
tenho N colunas
deleto uma e fico com N-1 colunas
quando adiciono uma coluna ao invês de ter novamente N colunas eu fico com N+1 colunas.
O que eu acho é que as colunas estão sendo removidas apenas visualmente e quando tento inserir uma coluna ele nunca excluiu aquela ultima coluna no modelo.
ficou muito confuso ou vcs entenderam?
Abaixo foi colocar os códigos de inserção de coluna e remoção:
Espero a resposta galera!
Um abraço!
This message was edited 2 times. Last update was at 09/03/2008 12:38:45
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/03/2008 17:03:51
|
arthurthiago
Debugger
![[Avatar]](/images/avatar/b60adcb70283fea07596c9a73ddfb899.jpg)
Membro desde: 06/02/2007 18:17:34
Mensagens: 72
Offline
|
Ninguém sabe oq pode estar acontencendo?!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/03/2008 19:11:15
|
arthurthiago
Debugger
![[Avatar]](/images/avatar/b60adcb70283fea07596c9a73ddfb899.jpg)
Membro desde: 06/02/2007 18:17:34
Mensagens: 72
Offline
|
estou revivendo este tópico pq ainda n achei uma solução. Se alguem puder sugerir algo.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/04/2008 20:45:05
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20581
Localização: Curitiba/PR
Offline
|
Depois de adicionar a coluna faça:
seuTableModel.fireTableStructureChanged();
|
@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) 04/04/2008 23:22:40
|
arthurthiago
Debugger
![[Avatar]](/images/avatar/b60adcb70283fea07596c9a73ddfb899.jpg)
Membro desde: 06/02/2007 18:17:34
Mensagens: 72
Offline
|
Valeu por ter respondido Vini. Porém não funcionou... Continuou com o problema.. =P
O que pode ser isso?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/04/2008 12:59:05
|
Renato.Pinheiro
Thread.start()
![[Avatar]](/images/avatar/049251c63a428a409b576d20a86ec031.jpg)
Membro desde: 10/06/2007 11:16:14
Mensagens: 31
Localização: Rio de Janeiro
Offline
|
Já tentou usar o AbstractTableModel?
|
Atenciosamente,
Renato Pinheiro
www.gpi.ufrj.br |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/04/2008 15:25:48
|
mrsmylle
JavaEvangelist
Membro desde: 20/05/2005 00:02:06
Mensagens: 432
Offline
|
Não dá erro?
Você está fazendo n = n-1 quando remove?? ou n+ 1 quando adiciona?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/04/2008 08:28:26
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20581
Localização: Curitiba/PR
Offline
|
Renato.Pinheiro wrote:Já tentou usar o AbstractTableModel?
Apoiado. O DefaultTableModel só serve para a Sun mostrar exemplos simples.
Tem um ótimos tutoriais sobre como criar um TableModel de verdade, filho de AbstractTableModel:
http://www.informit.com/articles/article.aspx?p=332278
http://www.informit.com/articles/article.aspx?p=333472
Isso torna o código mais modular, limpo e orientado a objetos.
|
@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) 08/04/2008 17:34:36
|
Renato.Pinheiro
Thread.start()
![[Avatar]](/images/avatar/049251c63a428a409b576d20a86ec031.jpg)
Membro desde: 10/06/2007 11:16:14
Mensagens: 31
Localização: Rio de Janeiro
Offline
|
Isso ai, e não se intimide não, o AbstractModel assusta mas é bem mais simples do que parece. Alias, tenho usado os models para tudo, meus list, combobox etc nunca mais foram os mesmos uahuahua
|
Atenciosamente,
Renato Pinheiro
www.gpi.ufrj.br |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/01/2010 17:34:06
|
leopoldof
GUJ Master
Membro desde: 07/03/2008 07:40:45
Mensagens: 1012
Offline
|
Para quem quiser...achei uma solução sem usar esse AbstractModel...
Em vez de usar essa linha para adicionar como citado na dúvida anteriormente,
adicione uma coluna através do columnModel e não pelo model direto aí dá certo ao adicionar novamente, ele vai adicionar somente uma enão duas
Cria-se um TableColumn e adiciona ele
assim...
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/01/2010 18:09:22
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20581
Localização: Curitiba/PR
Offline
|
leopoldof wrote:Para quem quiser...achei uma solução sem usar esse AbstractModel...
Sem usar o AbstractTableModel você só estará recorrendo em xunxo atrás de xunxo. Não faça isso, aprenda a fazer direito.
|
@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) 15/01/2010 17:30:55
|
leopoldof
GUJ Master
Membro desde: 07/03/2008 07:40:45
Mensagens: 1012
Offline
|
Mas para que reescrever uma classe se basta pegar o model da coluna em vez do model da tabela... só usar um método a mais......xunxo seria reecrever uma classe somente pra fazer isso.... uma carga a mais de processamento no sistema... se precisar de algo mais complexo, daí até concordo...mas pra isso... é quebrar a cabeça em vão e um pouquinho mais de peso no sistema...pois é uma classe a mais a ser carregada...
This message was edited 1 time. Last update was at 15/01/2010 17:31:42
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/01/2010 17:54:56
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20581
Localização: Curitiba/PR
Offline
|
leopoldof wrote:Mas para que reescrever uma classe se basta pegar o model da coluna em vez do model da tabela... só usar um método a mais......xunxo seria reecrever uma classe somente pra fazer isso.... uma carga a mais de processamento no sistema... se precisar de algo mais complexo, daí até concordo...mas pra isso... é quebrar a cabeça em vão e um pouquinho mais de peso no sistema...pois é uma classe a mais a ser carregada...
O DefaultTableModel é extremamente ineficiente. Colocar classes a mais no projeto não é "carga". Ele trabalha com Vectors de Vectors, tudo isso sincronizado. Ele força você a duplicar os seus dados de modelo na view, o que exige processamento e memória. Fora que, por conta dessa duplicação, você frequentemente fere o MVC.
Torna o código confuso, embolado. Por isso é mais difícil de fazer e manter aplicações com ele.
|
@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) 15/01/2010 17:55:06
|
marcobiscaro2112
JWizard
Membro desde: 01/12/2008 11:56:04
Mensagens: 2408
Localização: São Paulo - SP
Offline
|
leopoldof wrote:Mas para que reescrever uma classe se basta pegar o model da coluna em vez do model da tabela... só usar um método a mais......xunxo seria reecrever uma classe somente pra fazer isso.... uma carga a mais de processamento no sistema... se precisar de algo mais complexo, daí até concordo...mas pra isso... é quebrar a cabeça em vão e um pouquinho mais de peso no sistema...pois é uma classe a mais a ser carregada...
Você não estará reescrevendo uma classe. Você estará escrevendo a sua classe baseada no AbstractTableModel (não é reescrever pois essa classe ainda não está escrita - DefaultTableModel é, em aplicações de verdade, furada na certa). E não haverá uma classe a mais carregada já que somente sua implementação será usada (e não sua implementação + DefaultTableModel).
|
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) 15/01/2010 18:30:27
|
leopoldof
GUJ Master
Membro desde: 07/03/2008 07:40:45
Mensagens: 1012
Offline
|
Aproveitando o assunto de JTable.... como se faz para centralizar o texto do cabeçalho e retirar a ação de ordenar dele?
|
|
|
 |
|
|