Validação de dados

2 respostas
T

Bom dia Pessoal.
Preciso fazer um trabalho da faculdade em linguagem JAVA, eu sou bem leiga no assunto, ainda estou aprendendo…
Pessoal estou querendo fazer o seguinte, quando o usuario digitar alguma informação no “JTextField” verificar o que foi digitado, como por exemplo, não permitir que o usuario digite numeros no campo nome…

Abraços.

2 Respostas

J

Você pode criar um Document personalizado e atribuir ao JTextField, ou até mesmo implementar um KeyListener…

ex.:

public class NumerosDocument extends PlainDocument{ public void insertString(int offs, String str, AttributeSet a) throws BadLocationException{ try{ Integer.parseInt(str); super.insertString(offs, str, a); }catch(NumberFormatException nfe){ //não é numero } } }

JTextField campoNumeros = new JTextField(10); campoNumeros.setDocument(new NumerosDocument());

T

Bom dia.
Eu implementei meu codigo da seguinte forma.

import java.awt.<em>;

import java.awt.event.</em>;

import javax.swing.*;

import java.awt.event.KeyEvent;

import java.awt.event.KeyListener;

import javax.swing.JFrame;
import javax.swing.JTextField;

import java.awt.<em>;

import java.awt.event.</em>;

import javax.swing.*;

public class cartao_tela extends JFrame implements ActionListener{

private JButton botao, sair;
private JTextField numero_cartao, banco, agencia, valor;

public cartao_tela() {
super(">>>>Cadastro de Cartão de Crédito<<<<");

Container cp = getContentPane();
cp.setLayout(new GridLayout(5, 30, 70, 1));

cp.add(new Label("Número do Cartão: "));
cp.add(numero_cartao = new JTextField());

cp.add(new Label("Banco: "));
cp.add(banco = new JTextField());

//***** a função abaixo não permite a entrada de letras no campo agencia...   
cp.add(new Label("Agência: "));
cp.add(agencia = new JTextField());

agencia.addKeyListener(new KeyListener(){
public void keyTyped(KeyEvent e) {
        char c = e.getKeyChar();
        
          if(!Character.isDigit(c)){
             e.consume();
          }      
     }

     public void keyPressed(KeyEvent e) {
        
     }

     public void keyReleased(KeyEvent e) {
        // TODO Auto-generated method stub   
     }
     
  });
//**********************************************************************
  
cp.add(new Label("Valor: "));
cp.add(valor = new JTextField());

cp.add(botao = new JButton("Confirma"));
botao.addActionListener(this);

cp.add(sair = new JButton("Sair"));
sair.addActionListener(this);

botao.setMnemonic('c');
botao.setToolTipText("Clique aqui para confirmar cadastramento");

sair.setMnemonic('s');
sair.setToolTipText("Clique aqui para desistir");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

pack();

}

public void actionPerformed(ActionEvent e) {

try {

System.exit(0);
}
  
  catch(NumberFormatException nfe) {
 
  }

}

public static void main(String args[])

{

new cartao_tela().show();

}

}

Sera que tem uma funação de validação mais basica que essa??
Tambem queria saber, como eu faço para alterar o if, ao inves de permitir a entrada somente de numero, permitir a entrada somente de letras.

Abraços…

Criado 25 de agosto de 2006
Ultima resposta 25 de ago. de 2006
Respostas 2
Participantes 2