Limitando os caracteres a serem inseridos em uma jTextField

10 respostas
Adesbh

Galera, Segue uma que tá me matando:

Tenho uma textField e preciso limitar a entrada dela a apenas alguns caracteres.

Por ex.: O usuário só pode digitar os caracteres 123abc±=

Qualquer outra entrada deve ser simplesmente ignorada pelo sistema.

A textfield não pode ter limite de tamanho.

Conto mais uma vez com a colaboração de vocês!

obs.: Nem rola teclado virtual…

Valew!

10 Respostas

T

http://java.sun.com/docs/books/tutorial/uiswing/components/generaltext.html#filter

O exemplo dado é para limitar o número de caracteres, mas você pode mudar o exemplo para filtrar caracteres indesejados.

Adesbh

thingol:
http://java.sun.com/docs/books/tutorial/uiswing/components/generaltext.html#filter

O exemplo dado é para limitar o número de caracteres, mas você pode mudar o exemplo para filtrar caracteres indesejados.

Thingol, valew pela dica. vou dar uma olhada e falo se rolou…

diego2005

Não sei se é o seu caso, mais vai ai outro tutorial.

T+

Adesbh

diego2005:
Não sei se é o seu caso, mais vai ai outro tutorial.

T+

Galera, brigado pela força mas n funfo.
:frowning:

Pode ser noobice minha mas, ta osso!

Já fiz N tentativas… alguém pode passar tipo um pré-código??

VALEW!

Adesbh

Galera, segue o código q to apanhando.

private void tVisorKeyPressed(java.awt.event.KeyEvent evt) {                                  
        testeEntrada teste = new testeEntrada();

        teste.teste1(evt.getKeyChar());
    }
package itcv03;

import javax.swing.JOptionPane;

public class testeEntrada
{
    public boolean n1;
    public boolean n2;
    public boolean e;
    public boolean p1;
    public boolean p2;
    public boolean signal;
    public char b = '[code]package itcv03;

import javax.swing.JOptionPane;

public class testeEntrada
{
    public boolean n1;
    public boolean n2;
    public boolean e;
    public boolean p1;
    public boolean p2;
    public boolean signal;
    public char b = '\0';

    public char teste1(char a)
    {
        if(a == '0')
        {
            if(n1 == false)
            {
                return b;
            }

            else if(n1 == true && e == false)
            {
                return a;
            }

            else if (n1 == true && e == true && n2 == false)
            {
                n2 = true;
                return a;
            }

            else
                return b;
        }

        else if(a == '1')
        {
            if(n1 == false)
            {
                n1 = true;
                return a;
            }

            else if (n1 == true && e == true && n2 == false)
            {
                n2 = true;
                return a;
            }

            else
                return b;
        }

        else if(a == '2')
        {
            if(n1 == false)
            {
                n1 = true;
                return a;
            }

            else if (n1 == true && e == true && n2 == false)
            {
                n2 = true;
                return a;
            }

            else
                return b;
        }

        else if(a == '3')
        {
            if(n1 == false)
            {
                n1 = true;
                return a;
            }

            else if (n1 == true && e == true && n2 == false)
            {
                n2 = true;
                return a;
            }

            else
                return b;
        }

        else if(a == '4')
        {
            if(n1 == false)
            {
                n1 = true;
                return a;
            }

            else if (n1 == true && e == true && n2 == false)
            {
                n2 = true;
                return a;
            }

            else
                return b;
        }

        else if(a == '5')
        {
            if(n1 == false)
            {
                n1 = true;
                return a;
            }

            else if (n1 == true && e == true && n2 == false)
            {
                n2 = true;
                return a;
            }

            else
                return b;
        }

        else if(a == '6')
        {
            if(n1 == false)
            {
                n1 = true;
                return a;
            }

            else if (n1 == true && e == true && n2 == false)
            {
                n2 = true;
                return a;
            }

            else
                return b;
        }

        else if(a == '7')
        {
            if(n1 == false)
            {
                n1 = true;
                return a;
            }

            else if (n1 == true && e == true && n2 == false)
            {
                n2 = true;
                return a;
            }

            else
                return b;
        }

        else if(a == '8')
        {
            if(n1 == false)
            {
                n1 = true;
                return a;
            }

            else if (n1 == true && e == true && n2 == false)
            {
                n2 = true;
                return a;
            }

            else
                return b;
        }

        else if(a == '9')
        {
            if(n1 == false)
            {
                n1 = true;
                return a;
            }

            else if (n1 == true && e == true && n2 == false)
            {
                n2 = true;
                return a;
            }

            else
                return b;
        }

        else if(a == 'e')
        {
            if(n1 == true && e == false)
            {
                e = true;
                return a;
            }

            else
                return b;
        }

        else if(a == '.')
        {
            if(p1 == false && e == false && n1 == true)
            {
                p1 = true;
                n1 = false;
                return a;
            }

            else if(p2 == false && n2 == true)
            {
                p2 = true;
                n2 = false;
                return a;
            }

            else
                return b;
        }

        else if(a == '+' || a == '-')
        {
            if(e == true && n2 == false && signal == false)
            {
                signal = true;
                return a;
            }

            else
                return b;
        }

        else
        {
            JOptionPane.showMessageDialog(null, "erro");
            return b;
        }
    }
}
';

public char teste1(char a)
{
if(a == '0')
{
if(n1 == false)
{
return b;
}

else if(n1 == true && e == false)
{
return a;
}

else if (n1 == true && e == true && n2 == false)
{
n2 = true;
return a;
}

else
return b;
}

else if(a == '1')
{
if(n1 == false)
{
n1 = true;
return a;
}

else if (n1 == true && e == true && n2 == false)
{
n2 = true;
return a;
}

else
return b;
}

else if(a == '2')
{
if(n1 == false)
{
n1 = true;
return a;
}

else if (n1 == true && e == true && n2 == false)
{
n2 = true;
return a;
}

else
return b;
}

else if(a == '3')
{
if(n1 == false)
{
n1 = true;
return a;
}

else if (n1 == true && e == true && n2 == false)
{
n2 = true;
return a;
}

else
return b;
}

else if(a == '4')
{
if(n1 == false)
{
n1 = true;
return a;
}

else if (n1 == true && e == true && n2 == false)
{
n2 = true;
return a;
}

else
return b;
}

else if(a == '5')
{
if(n1 == false)
{
n1 = true;
return a;
}

else if (n1 == true && e == true && n2 == false)
{
n2 = true;
return a;
}

else
return b;
}

else if(a == '6')
{
if(n1 == false)
{
n1 = true;
return a;
}

else if (n1 == true && e == true && n2 == false)
{
n2 = true;
return a;
}

else
return b;
}

else if(a == '7')
{
if(n1 == false)
{
n1 = true;
return a;
}

else if (n1 == true && e == true && n2 == false)
{
n2 = true;
return a;
}

else
return b;
}

else if(a == '8')
{
if(n1 == false)
{
n1 = true;
return a;
}

else if (n1 == true && e == true && n2 == false)
{
n2 = true;
return a;
}

else
return b;
}

else if(a == '9')
{
if(n1 == false)
{
n1 = true;
return a;
}

else if (n1 == true && e == true && n2 == false)
{
n2 = true;
return a;
}

else
return b;
}

else if(a == 'e')
{
if(n1 == true && e == false)
{
e = true;
return a;
}

else
return b;
}

else if(a == '.')
{
if(p1 == false && e == false && n1 == true)
{
p1 = true;
n1 = false;
return a;
}

else if(p2 == false && n2 == true)
{
p2 = true;
n2 = false;
return a;
}

else
return b;
}

else if(a == '+' || a == '-')
{
if(e == true && n2 == false && signal == false)
{
signal = true;
return a;
}

else
return b;
}

else
{
JOptionPane.showMessageDialog(null, "erro");
return b;
}
}
}
[/code]

71C4700

Veja se assim funciona:

1. Crie uma classe que extende de PalinDocument

private class In extends PlainDocument {//Desculpa, foi a primeira coisa que veio a cabeça, In..Que isso hen????

        private String caracters = "123abc=+";//outros caracteres que deseje

        @Override
        public void insertString(int offset, String str, AttributeSet attr)   throws BadLocationException {

            if (caracters.contains(str)) {
                super.insertString(offset, str, attr);
            }

        } 
    }

2. Crie um JTextField

JTextField field = new JTextField();

3. Agora é so setar a classe que vc criou ao Document deste JTextField

field.setDocument(new In());

Veja se ajuda..

Att.

Adesbh
71C4700:
Veja se assim funciona:

1. Crie uma classe que extende de PalinDocument

private class In extends PlainDocument {//Desculpa, foi a primeira coisa que veio a cabeça, In..Que isso hen????

        private String caracters = "123abc=+";//outros caracteres que deseje

        @Override
        public void insertString(int offset, String str, AttributeSet attr)   throws BadLocationException {

            if (caracters.contains(str)) {
                super.insertString(offset, str, attr);
            }

        } 
    }

2. Crie um JTextField

JTextField field = new JTextField();

3. Agora é so setar a classe que vc criou ao Document deste JTextField

field.setDocument(new In());

Veja se ajuda..

Att.

Cara, MUITO OBRIGADO! FUNFO!

fica ai registrado para quem venha a ter a mesma dúvida.

Matheus_Prado

o que que eu tenho que importar pra essa classe funfa?

T
Adesbh:
71C4700:
Veja se assim funciona:

1. Crie uma classe que extende de PalinDocument

private class In extends PlainDocument {//Desculpa, foi a primeira coisa que veio a cabeça, In..Que isso hen????

        private String caracters = "123abc=+";//outros caracteres que deseje

        @Override
        public void insertString(int offset, String str, AttributeSet attr)   throws BadLocationException {

            if (caracters.contains(str)) {
                super.insertString(offset, str, attr);
            }

        } 
    }

2. Crie um JTextField

JTextField field = new JTextField();

3. Agora é so setar a classe que vc criou ao Document deste JTextField

field.setDocument(new In());

Veja se ajuda..

Att.

Cara, MUITO OBRIGADO! FUNFO!

fica ai registrado para quem venha a ter a mesma dúvida.

Pessoal esse código funcionou perfeitamente quando se está digitando os caracteres no campo, porem eu to com uma rotina que quando o usuario digita um CEP eu retorno o endereço, bairro, cidade e uf.
Só que com esse codigo restringe o resultado.
O que poderia ser alterado para que ele aceite o valor de retorno da consulta?
Grato!

71C4700

Tide...

passar como parametroa o construtor o valor da String que voce deseja permitir..
String suaString = Objeto.fazConsulta(); //Alguma coisas do Banco
field.setDocument(new In(suaString));

E no contrutor da Classe In...

public In(String follow){
this.caracters = follow;
}

E o restante do código continuaria igual...

Criado 15 de maio de 2009
Ultima resposta 19 de mai. de 2010
Respostas 10
Participantes 6