JFormattedTextField teimoso

Olá amigos!!

Seguinte, estou tentando fazer alguma coisa com JFormattedTextField, mas tenho por enquanto 3 questões:

1 - Um campo que coloquei com mascara ‘#####’, só fica com o valor se eu informar 00001, informando apenas 1 e dando tab, o campo fica em branco! O que fiz errado? Ou o que deixei de fazer ?

2 - Um campo texto onde coloco a mascara como ‘AAAAAAAAAA’ ou ‘UUUUUUUUU’ não aceita espaços, e se eu não preencher todo ele também fica em branco.

3 - Um campo formatado com java.text.SimpleDateFormat(“dd/MM/yyyy”), não apresenta as / automaticamente, porém, se eu informo uma mascara ##/##/#### com o maskformatter pega belezinha, mas não valida a data.

Obrigado pela força!

Fale Douglas. Há um tempo atrás passei por esse problema de ter que preencher totalmente um campo formatado para que ele não apague tudo. A solução que encontrei foi “setar” a propriedade FocusLostBehavior do Jformatted TextField da seguinte forma:

JFormattedTextField tf = new JForm…
tf.setFocusLostBehavior(JFormattedTextField.COMMIT);

abraço

victorcunha

Muitíssimo obrigado! Fechou na tampa!

Douglas

Olá pessoal, não sei se estou no tópico certo para tirar minha dúvida.
Criei um campo JTextField mas só quero que ele aceite números, tentei de várias formas e não consegui, dando uma olhada neste tópico achei que o JFormattedTextField fosse o ideal para o meu problema, estou certa?

[quote=ligi]Olá pessoal, não sei se estou no tópico certo para tirar minha dúvida.
Criei um campo JTextField mas só quero que ele aceite números, tentei de várias formas e não consegui, dando uma olhada neste tópico achei que o JFormattedTextField fosse o ideal para o meu problema, estou certa? [/quote]

isso, entao vc faz uma mascara, tipo essa onde o # significa que so pode ser digitado numero, e seta no JFormattedTextField:

MaskFormatter formatter = new MaskFormatter("#######");

Ok sudeval
mas fazendo assim eu fico limitada a quantidade de caracteres. O meu programa ler o que foi digitado no JFormattedTextField e transforma em inteiro para utilizar adiante, daí quando eu coloco a máscara “###” e só digito um número ele fica com 2 espaços em branco e n consegue transformar em inteiro, fui clara?

Vi algo do tipo :

JFormattedTextField formattedNumero=new JFormattedTextField(NumberFormat.getNumberInstance());

Mas n funcionou, continuou aceitando letras

http://www.guj.com.br/posts/list/29456.java

no final tem algo que um colega fez, nao to com tempo de ver agora, mais deve te ajudar em algo

Olha só… passei por isso ontem… hehehe
E aí está uma solução… Meu JtextField txtEmpresa só pode aceitar números:

Long codEmpresa = null;

	if (!txtEmpresa.getText().equals("")) {
		try {
			codEmpresa = new Long(txtEmpresa.getText());
			
		} catch (NumberFormatException e) {
			
			JOptionPane.showMessageDialog(this,
					"O campo \"Empresa\" deve conter valor numérico.", "",
					JOptionPane.INFORMATION_MESSAGE);
			return;
		}

	} else {
		codEmpresa = null;
	}

Acho que te ajuda!!!