Validar JTextField

2 respostas
antoniodourado

Tenho um JTextField que deve receber apenas numeros…

Estou construindo a interface pelo netbeans e como todos sabem, ele bloqueia algumas partes do código…

Alguém poderia me ajudar com essa validação?

2 Respostas

diego2005

Uma forma é você implementar um KeyListener e verificar se o que está sendo digitado é número…

T+

Vingdel

antoniodourado:
Tenho um JTextField que deve receber apenas numeros…

Estou construindo a interface pelo netbeans e como todos sabem, ele bloqueia algumas partes do código…

Alguém poderia me ajudar com essa validação?

Olá antoniodourado,

Sou novo em java e comecei a estudar java faz mais ou menos uma semana e tenho lido bastante sobre os componentes Swing e acho que posso te ajudar. Caso eu esteja errado pesso que os mais experientes me corrijam, por favor, to aqui pra aprender.

Para fazer uma validação de caixa de texto existe o componente JFomatedTextField, no seu caso de querer somente números é a melhor forma que conheço até agora.

Veja esse exemplo:

import javax.swing.*;
import javax.swing.text.*;
import java.awt.*;
import java.awt.event.*;
import java.text.*;
public class ExemploJFormattedTextField extends JFrame{
    JLabel rotulotel
    JFormattedTextField tel;
    MaskFormatter mascaratel;
    public ExemploJFormattedTextField(){
        super("Exemplo com JFormattedTextField e MaskFormatter");
        Container tela = getContentPane();
        setLayout(null);
        rotulotel = new JLabel("Telefone: ");
        rotulotel.setBounds(50,80,100,20);
        try{
            //Define a fomatação para "mascaratel", # representa números
            mascaratel = new MaskFormatter("(##)####-####");
            //Define o caractere que
será exibido como marcador para a máscara
            mascaratel.setPlaceholderCharacter(?_?);
        }
        catch(ParseException excp){}
        //Fornece a formatação "mascaratel" para o contrutor da
        // classe JFormatedTextField "tel" como argumento
        tel = new JFormattedTextField(mascaratel);
        tel.setBounds(150,80,100,20);
        tela.add(rotulotel);
        tela.add(tel);
        setSize(400, 250);
        setVisible(true);
    }
    public static void main(String args[]){
        ExemploJFormattedTextField app = new ExemploJFormattedTextField();
        app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

Ahhh, mais uma coisa há uma tabela usada na formatação, veja a seguir:

# Um número
? Uma letra
A Uma letra ou um número

  • Qualquer conteúdo será aceito pelo controle
    U Uma letra convertida em maiúsculo
    L Uma letra convertida em minúsculos

Espero que tenha ajudado. Faça o teste e diga-nos como foi.

Caso precise de mais alguma explicação além dos comentários é só perguntar.

Abraço!
Delano Lima

Criado 20 de agosto de 2007
Ultima resposta 21 de ago. de 2007
Respostas 2
Participantes 3