duvida com o enum ...  XML
Índice dos Fóruns » Interface Gráfica
Autor Mensagem
marcoscorso
Virtual Machine Man

Membro desde: 19/09/2006 11:04:27
Mensagens: 612
Offline


ola pessoal, estou tentando usar o enum mas estou com problemas ...
tenho uma classe onde eu monto todas as mascaras que vou usar no meu sistema ...




dae no meu cadastro, eu chamo essa classe de mascara usando jformatedtextfield da seguinte maneira ...




mas ao inves de me retornar a mascara de cgc - ("##.###.###/####-##"); - retorna a palavra "CGC" ...
o que esta de errado no meu codigo que nao quer aparecer a mascara ...

obrigado
emmanuel.silva
JavaTeenager
[Avatar]

Membro desde: 26/05/2006 10:46:57
Mensagens: 169
Localização: Curitiba
Offline

Está certo acontecer isso mesmo, vc está chamando o construtor do componente JFormattedTextField o Enum que vc criou, ele não vai conseguir adivinhar para você qual mascara você quer usar a partir do enum, você precisa chamar o metodo getMascara() que você criou, porque lá vc retorna a mascara de acordo com cada enum ficando assim:



Blz...

Acho que é isso...
[MSN]
ViniGodoy
Moderador
[Avatar]

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

O mais elegante seria você declarar as máscaras dentro do seu enum:



E na hora de usar, só fazer:

[WWW]
marcoscorso
Virtual Machine Man

Membro desde: 19/09/2006 11:04:27
Mensagens: 612
Offline


deu certo ...
muito obrigado pessoal

Ironlynx
Moderador
[Avatar]

Membro desde: 02/05/2003 01:06:41
Mensagens: 3515
Localização: The other side of the screen
Offline

ViniGodoy, taí um excelente uso para Enum!!!
Acabei de refatorar umas 10 classes de máscaras aqui de bobeira...

Não basta persistir...tem que prevalecer!
Ironlynx
Anarquista de Sistemas
http://osereojava.blogspot.com/
[WWW]
ViniGodoy
Moderador
[Avatar]

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

Gostou?

Então aproveite e dê uma olhada também neste tópico.
[WWW]
marcoscorso
Virtual Machine Man

Membro desde: 19/09/2006 11:04:27
Mensagens: 612
Offline


ola ...

surgiu mais um problema com o enum ...
ai vai meu codigo ...



explicando, o que quero fazer no textfield1 passo o parametro que quero, nesse caso, "UPPER", pra que o que seja digitado fique maiusculo (vejo isso no switch) - mas ele esta passando pelos 3 casos - NONE, UPPER, LOWER - ou seja, sempre vai retornar como lower, por ser o ultimo ...

o que eu faco, tentei trocar o switch por if e tambem nao deu certo ...

ViniGodoy
Moderador
[Avatar]

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

Faltou break no seu switch.



Mas, novamente, você está subaproveitando o enum.

Via de regra, fuja do switch!!! Quando possível, use o polimorfismo. Dá uma olhada no link que eu passei ali em cima e vê se consegue refatorar esse seu código.
[WWW]
ViniGodoy
Moderador
[Avatar]

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

Então, com o código refatorado ficaria assim:

Primeiro, e num letras usando polimorfismo:


Depois, o local de uso:


Dá uma olhada no link lá em cima para mais explicações.
[WWW]
marcoscorso
Virtual Machine Man

Membro desde: 19/09/2006 11:04:27
Mensagens: 612
Offline


estou com um problema para definir o tamanho de caracteres digitados num textfield....

usei o seguinte :



onde "total" eu passo via parametro ...
mas tem um problema, defini "total" como 5, se eu digitar "1234" , copiar "123", e colar, ele deixar colar, nao veta os 5 de tamanho maximo, o que posso fazer pra corrigir isso ??
ViniGodoy
Moderador
[Avatar]

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

Você tem que usar a interface document, como descrito neste tutorial e implementado neste tópico.
[WWW]
marcoscorso
Virtual Machine Man

Membro desde: 19/09/2006 11:04:27
Mensagens: 612
Offline


mais um problema ...
tenho varios textfield ...

jTextField1.setDocument( new Validacao(10, Validacao.letras.NONE ) );
jTextField2.setDocument( new Validacao(20, Validacao.letras.UPPER ) );
jTextField3.setDocument( new Validacao(30, Validacao.letras.LOWER ) );

o "10","20","30" eh o tamanho maximo de caracteres, o "NONE" pra formatar o campo ... mas ele esta aceitando apenas o ultimo, ou seja, todos os textfield ...
ViniGodoy
Moderador
[Avatar]

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

Tem cheiro de que algum atributo dentro da sua classe Validacao é estático. Se for, faça-o deixar de ser.

Se não for isso, anexa o código da classe num post aí pra gente dar uma olhada...
[WWW]
marcoscorso
Virtual Machine Man

Membro desde: 19/09/2006 11:04:27
Mensagens: 612
Offline


sobre a ultima duvida deu certo ...
estavam mesmo como static, mudei para public e cada textfield ficou com sua devida validacao ...

obrigado novamente
marcoscorso
Virtual Machine Man

Membro desde: 19/09/2006 11:04:27
Mensagens: 612
Offline


ola

a mascara deu certo, esta funcionando ...
mas ela fica aparecendo assim : " . - " no caso do cep ...
tem como mudar os espacos em branco por "_" ??
procurei algo sobre " .setPlaceholderCharacter('_'); " mas nao sei como implementar isso no meu codigo ...
 
Índice dos Fóruns » Interface Gráfica
Ir para:   
Powered by JForum 2.1.8 © JForum Team