Adesbh
Maio 15, 2009, 12:55pm
#1
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!
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
Maio 15, 2009, 1:05pm
#3
[quote=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.[/quote]
Thingol, valew pela dica. vou dar uma olhada e falo se rolou…
Não sei se é o seu caso, mais vai ai outro tutorial .
T+
Adesbh
Maio 20, 2009, 10:54am
#5
[quote=diego2005]Não sei se é o seu caso, mais vai ai outro tutorial .
T+[/quote]
Galera, brigado pela força mas n funfo.
Pode ser noobice minha mas, ta osso!
Já fiz N tentativas… alguém pode passar tipo um pré-código??
VALEW!
Adesbh
Maio 20, 2009, 5:39pm
#6
Galera, segue o código q to apanhando.
[code] private void tVisorKeyPressed(java.awt.event.KeyEvent evt) {
testeEntrada teste = new testeEntrada();
teste.teste1(evt.getKeyChar());
} [/code]
[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 = '[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;
}
}
}
[/code]’;
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]
Veja se assim funciona:
Crie uma classe que extende de PalinDocument
[code]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);
}
}
}[/code]
Crie um JTextField
JTextField field = new JTextField();
Agora é so setar a classe que vc criou ao Document deste JTextField
field.setDocument(new In());
Veja se ajuda…
Att.
Adesbh
Maio 21, 2009, 5:29pm
#8
[quote=71C4700]Veja se assim funciona:
Crie uma classe que extende de PalinDocument
[code]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);
}
}
}[/code]
Crie um JTextField
JTextField field = new JTextField();
Agora é so setar a classe que vc criou ao Document deste JTextField
field.setDocument(new In());
Veja se ajuda…
Att.[/quote]
Cara, MUITO OBRIGADO! FUNFO!
fica ai registrado para quem venha a ter a mesma dúvida.
o que que eu tenho que importar pra essa classe funfa?
Tide
Maio 19, 2010, 1:37pm
#10
[quote=Adesbh][quote=71C4700]Veja se assim funciona:
Crie uma classe que extende de PalinDocument
[code]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);
}
}
}[/code]
Crie um JTextField
JTextField field = new JTextField();
Agora é so setar a classe que vc criou ao Document deste JTextField
field.setDocument(new In());
Veja se ajuda…
Att.[/quote]
Cara, MUITO OBRIGADO! FUNFO!
fica ai registrado para quem venha a ter a mesma dúvida.[/quote]
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!
Tide…
passar como parametroa o construtor o valor da String que voce deseja permitir…
[code]
String suaString = Objeto.fazConsulta(); //Alguma coisas do Banco
field.setDocument(new In(suaString)); [/code]
E no contrutor da Classe In…
public In(String follow){
this.caracters = follow;
}
E o restante do código continuaria igual…