Projeto Towel: AutoFiltro em JTable  XML
Índice dos Fóruns » Interface Gráfica
Autor Mensagem
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20584
Localização: Curitiba/PR
Offline

Na verdade, ali não trata. Aliás, é uma boa idéia. Numa dessas definir um renderer para lá.

Enfim, o que fazíamos para mostrar datas era retornar o date encapsulado num tipo chamado DateView.

O tipo era esse aqui:



Nada mais é do que um wrapper que retorna a Data no formato que você quiser no toString(), mas faz a comparação usando os valores de data mesmo.

Aí, basta fazer seu model retornar um DateView no lugar de um Date. E no setValueAt, pegar o calendar que está associado ao DateView.

This message was edited 1 time. Last update was at 02/09/2009 13:33:44


@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
[WWW]
javer
Virtual Machine Man
[Avatar]

Membro desde: 10/09/2007 12:06:29
Mensagens: 642
Localização: São Paulo - SP
Offline

Não seria possível usar o mesmo renderer da coluna da tabela? Por exemplo: uma coluna moeda (currency) que possui um Double como tipo.

Eu não entendi direito como você usa esse DateView, e também não é apenas Date, tem Double também tem Integer.

------------------------------------------------------
Java Desktop Developer (Swing) - www.javasis.com.br
--- Disponível para Emprego ---
[WWW]
javer
Virtual Machine Man
[Avatar]

Membro desde: 10/09/2007 12:06:29
Mensagens: 642
Localização: São Paulo - SP
Offline

Vinícius tenho que te perguntar mais uma coisa sobre esse filtro.

Seguinte, preciso que um método do meu modelo (que foi passado para o TableFilter) se executado apenas sobre as linhas filtradas, esse método retorna a soma dos valores em uma coluna (coluna valor a pagar).

Estou guardando as referências para os atributos conforme você me indicou:


Coloquei o TableModelListener na tabela e estou testando pegar a soma tanto do modelo como do filtro, em nenhum dos casos o valor mudou:


Qual seria o método do filtro que eu tenho acesso as linhas filtradas?

Mais uma vez obrigado pelas dicas.
Francisco

------------------------------------------------------
Java Desktop Developer (Swing) - www.javasis.com.br
--- Disponível para Emprego ---
[WWW]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20584
Localização: Curitiba/PR
Offline

Você acredita que só hoje vi sua dúvida? Ela ainda existe, ou conseguiu resolver?

Em todo caso, você usa o método getFilteredRows(). Ele retorna um list, com o índice das linhas que foram mantidas, após o filtro.

This message was edited 1 time. Last update was at 30/11/2009 16:21:46


@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
[WWW]
javer
Virtual Machine Man
[Avatar]

Membro desde: 10/09/2007 12:06:29
Mensagens: 642
Localização: São Paulo - SP
Offline

Ahahaha, já resolvi sim, acho que foi do jeito que você indicou mesmo, mesmo assim obrigado pela resposta.

Abz

------------------------------------------------------
Java Desktop Developer (Swing) - www.javasis.com.br
--- Disponível para Emprego ---
[WWW]
Richard Rocha
Smalltalk

Membro desde: 12/11/2009 22:19:33
Mensagens: 3
Offline

Boma noite ao pessoal do forum.

Sou iniciante em Swing e estou penando na parte de tabelas.
Baixei o exemplo do Vini mas nao consegui adaptar para uma tabela vinda do banco de dados com varias colunas.
Como exemplo tenho uma tabela de Municipios que teria os campos codEstado, codigo e descricao.
Minha pergunta é como implementar a enumeracao para que receba os tres valores. No exemplo é recebido somente
uma <String>.

É possivel receber um vetor (por exemplo) ou a propria classe "municipio" ? como fica a declaracao ?

public enum apMunicipio implements Column<String> { // como fica a a substituicao do <String> para vincular aos campos abaixo
codEstado {
public Object getValue(String element) {
return element;
}
},
codigo {
public Object getValue(String element) {
return element;
}
},
descricao {
public Object getValue(String element) {
return element;
}
}
;

...

Obrigado
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20584
Localização: Curitiba/PR
Offline

Só com uma String fica impossível. Você precisa de uma lista de Municipios, então, crie uma classe Municipio contendo os três valores e faça um Column<Municipio>.

@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
[WWW]
caceres
Debugger
[Avatar]

Membro desde: 13/03/2009 15:41:52
Mensagens: 62
Offline

Boa tarde galera!

Bom eu sou novo em programação java e estou estudando esse modelo de tabela porque até então eu usava a DefaultTableModel.
Mas eu não estou entendendo como eu adiciono as colunas nessa tabela.
Alguem me ajude por favor!

desde já agradeço
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20584
Localização: Curitiba/PR
Offline

Você está tentando usar qual modelo? O Auto-Filtro não é um modelo, é só o filtro.
Junto ali tem o ColumnTableModel, é o que você está usando?

Eu recomendo que você use o ObjectTableModel, do Mark.

@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
[WWW]
caceres
Debugger
[Avatar]

Membro desde: 13/03/2009 15:41:52
Mensagens: 62
Offline

Sim, eu estou tentando usar o ColumnTableModel.

Bom eu acho q eh isso, me fale se eu estiver errado.

Eu tenho q criar um outro Enum implementando a classe Column<String>, e lah eu adiciono as colunas?

outra coisa, qualquer um desses modelos funciona bem com o Hibernate?

obrigado
caceres
Debugger
[Avatar]

Membro desde: 13/03/2009 15:41:52
Mensagens: 62
Offline

Mas de qualquer forma eu vou estudar o modelo do mark.

Vini eu queria uma opinião sua.

Eu sou recem formado em Sistemas de Informação, eu vi java na faculdade, mais foi basico.
Ai vai minha pergunta: como vcs sabem tudo isso de java, apenas estudando em livros, ou com cursos?
Eu estou estudando o livro Java como Programar do Deitel e tbm o manual do Hibernate, mas tem coisas que são difíceis de entender.

oq vc me sujere, para eu aprender melhor sobre java.

obrigado pela atenção.
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20584
Localização: Curitiba/PR
Offline

Oi.

Fiz segundo grau Técnico em Processamento de Dados, na UFPR. Também me formei em Informática pela UTFPR. E ainda tenho pós-graduações em Jogos Digitais pela Universidade Positivo, além de 15 anos de profissão.

Então, como a gente sabe tanto de java? Estudando, trabalhando e ralando pra xuxu.


É importante não querer fazer as coisas nas coxas. Tem muita gente que se acomoda e simplesmente "faz funcionar", sem se preocupar se está ou não usando as melhores práticas, ou com manutenção futura. Se você começar a codificar sem entender o que está fazendo, está com um problema.


Para usar o ColumnTableModel, você deve criar um Enum de columns da sua classe de negócio. Ela certamente não será a classe String. O model funciona perfeitamente bem com Hibernate.

Por exemplo, qual é a sua classe de negócio que você quer exibir na tabela? Pode posta-la aqui? Se for uma tabela de clientes, a classe provavelmente será Cliente. Se for de produtos, será Produto. Enfim, que classe vc quer exibir na tabela?

This message was edited 2 times. Last update was at 09/07/2010 14:43:39


@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
[WWW]
caceres
Debugger
[Avatar]

Membro desde: 13/03/2009 15:41:52
Mensagens: 62
Offline

Como eu estou utilizando uma classe simples apenas para estudo. Se eu entender o funcionamento basico o resto eu me viro bem.

estou utilizando a classe PessoaDTO (Modelo MVC).

ai esta a minha classe.

package br.com.JavaHibernate.DTO;

public class PessoaDTO
{
private String nome, rg, cpf, sexo;
private int id_pessoa;

//Metodos set's e get's ocultos.
}
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20584
Localização: Curitiba/PR
Offline

Oi,

Uma dica: quando postar código aqui no fórum, ponha entre as tags code:
[code]
Seu código aqui
[/code]

Ok. Vamos fazer com sua classe simples.
Embora seja apenas um DTO (você deveria fazer o model sobre as classes quentes, não sobre os DTOs).

O columnTableModel trabalha com duas interfaces. A Column (para colunas read only) e a EditableColumn (para as editáveis). No caso, vamos fazer uma tabela não editável.



Agora, bastaria fazer um ColumnTableModel<PessoaDTO> e passar as colunas desse enum para ele. E sua tabela já sairia funcionando.

This message was edited 2 times. Last update was at 12/07/2010 12:13:07


@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
[WWW]
caceres
Debugger
[Avatar]

Membro desde: 13/03/2009 15:41:52
Mensagens: 62
Offline


Embora seja apenas um DTO (você deveria fazer o model sobre as classes quentes, não sobre os DTOs).


Oi, ja estou entendendo, e vou parar de tomar seu tempo ..hehehe.., mas eu soh gostaria de saber:

Eu não entendi sobre classes quentes.

no construtor do codigo q vc me passou, o Enum aceita apenas o modificador private e nao public como vc utilizou, posso deixar como private?

obs: ate hj eu nao tinha visto um construtor private!!

Porque vc me aconselha o modelo do mark (ObjectTableModel)?
É melhor q esse?

e eu consegui colocar as colunas na tabela. Muito obrigado mesmo pela grande ajuda.

obrigado.

 
Índice dos Fóruns » Interface Gráfica
Ir para:   
Powered by JForum 2.1.8 © JForum Team