JFormattedTextField não repassa corretamente dados das máscaras para o modelo  XML
Índice dos Fóruns » Interface Gráfica
Autor Mensagem
Rodrigo Manhães
JavaGuru
[Avatar]

Membro desde: 14/07/2005 17:07:07
Mensagens: 242
Localização: Campos dos Goytacazes/RJ
Offline

Olá,

preciso acessar os dados de um JFormattedTextField a partir de seu modelo (uma implementação de javax.swing.text.Document). O problema é que as informações que ficam no modelo trazem os caracteres de formatação da máscara (por exemplo, pontos e barras em um CPF), mesmo que eu desabilite isto em MaskFormatter com o método setValueContainsLiteralCharacters(false).

Alguém sabe como seria possível que o MaskFormatter ou mesmo o JFormattedTextField repassassem o valor correto para o modelo?

Obrigado.

https://github.com/rodrigomanhaes
http://programacaoradical.blogspot.com
marcioa1
Virtual Machine Man
[Avatar]

Membro desde: 29/11/2003 12:52:10
Mensagens: 736
Localização: Valinhos-SP
Offline

Você está usando getText() ou getValue() ? Tente este último.

Márcio

SCJP 1.4,
[Email]
Rodrigo Manhães
JavaGuru
[Avatar]

Membro desde: 14/07/2005 17:07:07
Mensagens: 242
Localização: Campos dos Goytacazes/RJ
Offline

Marcio, acho que não me fiz entender. Criamos aqui uma estrutura para fazer, basicamente, o que os componentes chamados "conscientes de dados" fazem em ambientes RAD como Delphi ou Visual Basic. Porém, aqui os componentes não carregam seus dados de tabelas mas de objetos no padrão JavaBeans.

Nesta estrutura os dados são extraídos não dos componentes mas dos modelos subjacentes da estrutura MVC do Swing (o que inviabiliza o uso de JFormattedTextField.getText ou JFormattedTextField.getValue), que, no caso de um JFormattedTextField, é alguma instância de uma classe que implementa a interface javax.swing.text.Document. O problema é que o modelo não recebe o value, mas o text.

O problema é justamente esse: o modelo Document subjacente ao JFormattedTextField não recebe o valor como especificado na máscara, e sim o texto contendo a máscara, mesmo que se tenha solicitado ao formatador (MaskFormatter) que o valor resultante não contivesse a máscara. Isto me parece, ainda, um furo da modelagem MVC do Swing, já que formatação é atributo da visualização. O modelo deveria obter o valor correto, já processado.

https://github.com/rodrigomanhaes
http://programacaoradical.blogspot.com
 
Índice dos Fóruns » Interface Gráfica
Ir para:   
Powered by JForum 2.1.8 © JForum Team