Validar entrada em JTextField [RESOLVIDO]

4 respostas
hiroc

dae pessoal,
como faço para identificar se a pessoa digitou aspas simples ou aspas duplas num campo JTextField?

estava tendando assim...

obsField.addFocusListener(new FocusListener(){
			public void focusGained(FocusEvent e) {}
			public void focusLost(FocusEvent e) {
				Pattern pt = Pattern.compile("p{Punct}");
				String tx = "Teste\'qualquer vasmo ver \" se funciona";
				Matcher m = pt.matcher(tx);
				System.out.println(tx);
				for(int i = 0; i<4;i++)
				if(m.matches()){
					System.out.println("ACHOU!");
				}else
					System.out.println("Não achou!");
			}
			
		});

mas dentro de compile eu já coloquei um monte de coisa diferente e não consegui identificar as aspas simples nem as aspas duplas...

alguém???

4 Respostas

ViniGodoy

Não use o evento de focusLost para validar um JTextField. Isso geralmente não funciona direito e dá uma série de problemas. Para isso, o Swing tem uma classe especial, chamada InputVerifier, há um exemplo de como funciona no próprio javadoc:
http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/InputVerifier.html

Quanto a sua dúvida em específico, porque não usa o método contains?
public class Teste {
    public static void main(String[] args) {
        String texto = "Vinícius '";
        String texto2 = "Vinícius \"";
        
        System.out.println("Tem aspas simples: " + texto.contains("\'"));
        System.out.println("Tem aspas duplas: " + texto2.contains("\""));
    }
}
hiroc

valew pelas dicas cara…
falows!

M

Estou tentando validar um “nomeJTextField” para quando a pessoa digitar um nome como por exemplo "Caixa D’Água"m no momento da inserção do dado no banco, ele dá pau por causa do aspas simples.

Alguém poderia me ajudar?

Obrigado!!

hiroc

Maur?io Pais:
Estou tentando validar um “nomeJTextField” para quando a pessoa digitar um nome como por exemplo "Caixa D’Água"m no momento da inserção do dado no banco, ele dá pau por causa do aspas simples.

Alguém poderia me ajudar?

Obrigado!!

Então cara, tenta fazer assim…
quando a pessoa clicar em “Salvar” ou no botão que inicia esse processo, coloca uma validação inicial dos campos perguntando:

if(nomeJTextField.contains(" ' ")){ System.out.println("Entrada inválida. Favor usar apenas valores alfanuméricos."); } else{ // Faz outra validação ou inicia o processo de inserção no banco. }

Criado 27 de outubro de 2008
Ultima resposta 1 de dez. de 2008
Respostas 4
Participantes 3