Como faz para o JFormattedTextField e o MaskFormatter funcionarem? Os que implementei não computam os dados digitados pelo usuário final de jeito nenhum! Meu código tá assim:
[code] JFrame janela=new JFrame();
janela.setVisible(true);
JButton botaoSalvar=new JButton("Salvar");
JButton botaoCancelar=new JButton("Cancelar");
botaoSalvar.setBounds(0, 390, 80, 30);
botaoCancelar.setBounds(85, 390, 90, 30);
JLabel marcadorNome=new JLabel("Nome");
marcadorNome.setBounds(0, 0,150,20);
marcadorNome.setForeground(Color.WHITE);
try
{
MaskFormatter mascaraNome=new MaskFormatter("UUUUU");
mascaraNome.setValidCharacters("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
mascaraNome.setValueContainsLiteralCharacters(true);
mascaraNome.setPlaceholderCharacter('_');
JFormattedTextField nomeJFormatted=new JFormattedTextField(mascaraNome);
String nome=nomeJFormatted.getText();
nomeJFormatted.setBounds(150, 0,150,20);
Produto produto=new Produto(nome);
ActionListener botaoSalvarCancelar=new ActionListener()
{
public void actionPerformed(ActionEvent evento)
{
if(evento.getSource()==botaoSalvar)
{
if(nome==null || nome.equals("") || nome.equals("_____"))
{
JOptionPane.showMessageDialog(null, "VAZIO!",
"MÓDULO CADASTRO",JOptionPane.ERROR_MESSAGE);
JOptionPane.showMessageDialog(null, produto.imprimir(),
"MÓDULO CADASTRO",JOptionPane.INFORMATION_MESSAGE);
nomeJFormatted.setText("");
}
else
{
array.inserir(produto);// Insere o produto no array
JOptionPane.showMessageDialog(null, "PREENCHIDA!",
"MÓDULO CADASTRO",JOptionPane.INFORMATION_MESSAGE);
JOptionPane.showMessageDialog(null, produto.imprimir(),
"MÓDULO CADASTRO",JOptionPane.INFORMATION_MESSAGE);
nomeJFormatted.setText("");
}
}
if(evento.getSource()==botaoCancelar)
{
janela.dispose();
}
}
};
botaoSalvar.addActionListener(botaoSalvarCancelar);
botaoCancelar.addActionListener(botaoSalvarCancelar);
janela.getContentPane().add(marcadorNome);
janela.getContentPane().add(nomeJFormatted);
janela.getContentPane().add(botaoSalvar);
janela.getContentPane().add(botaoCancelar);
janela.setBounds(200,150,800,500);
janela.setResizable(true);
janela.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
catch(ParseException excessao)
{
JOptionPane.showMessageDialog(null, excessao.getMessage(),
"MÓDULO CADASTRO",JOptionPane.ERROR_MESSAGE);
}[/code]
[b]Simplesmente [color=red]produto.imprimir()[/color] sempre retorna a String da mascara e o JOptionPane só exibe [color=red]_____[/color]. E se eu usar o getValue() não é impresso nada no JOptionPane. Alguém sabe dizer o que está faltando para ser computado os dados digitados pelo usuário nos campos?
Grata e aguardando resposta.[/b]