JFormattedTextField e MaskFormatter

1 resposta
Pieces

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:

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);
		}

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.

1 Resposta

S

Olá amigo

o que tem dentro de produto.imprimir()? você poderia postar?.

Silvio Guedes

Criado 29 de julho de 2015
Ultima resposta 6 de ago. de 2015
Respostas 1
Participantes 2