Duvida sobre limitar um campo em java

8 respostas
renanmoraes

Essa duvida deve ser de varios iniciantes como eu, então vamos la:

Teria alguma maneira em java de limitar: String,double,int…

como assim limitar?
exemplo:
um programa cadastro de cliente, tem la o campo “Estado ou UF” onde o usuario vai digitar o estado do cliente.
como faço para que o Campo Estado não passe de 2caracteres digitados “SP”,“BA”… ou seja queria saber alguma maneira para que não permita passar de duas letras :?:

8 Respostas

marcioa1

Renan,

Sua aplicação é Swing ? Estudo o JFormattedTextField. Nele você pode fornecer uma máscara limitando o número de caracteres permitidos.

Abraço,

Márcio

renanmoraes

marcioa1

Minha aplicação é Swing

como assim fornecer uma mascara, teria como você me dar um exemplo?

Obrigado marcioa1!

marcioa1

Renan,

Como anda seu inglês ? Este tutorial da Sun é legal

http://java.sun.com/docs/books/tutorial/uiswing/components/formattedtextfield.html#constructors

Márcio

renanmoraes

marcioa1

Valeu pelo link do tutorial obrigado mesmo.

Meu inglês não é aqueles mas se eu precisar o tradutor quebra meu galho :wink:

Valeu pela ajuda.

A

Dá uma olhada aqui:

http://www.guj.com.br/java.tutorial.artigo.29.1.guj

Boa Sorte!

R

Tenho um exemplo de uma classe LimitedJTextField aqui:

import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

import javax.swing.JTextField;

public class LimitedJTextField extends JTextField{

private byte maxLength=0;


public LimitedJTextField(int maxLength){
	super();
	this.maxLength= (byte)maxLength;
	this.addKeyListener(new LimitedKeyListener());
}

public void setMaxLength(int maxLength){
	this.maxLength= (byte)maxLength;
	update();
}

private void update(){
	if (getText().length()>this.maxLength){
		setText(getText().substring(0,this.maxLength));
		setCaretPosition(this.maxLength);
	}
}

public void setText(String arg0){
	super.setText(arg0);
	update();
}


public void paste(){
	super.paste();
	update();
}


//Classes Internas
private class LimitedKeyListener extends KeyAdapter{
	private boolean backspace= false;
	
	public void keyPressed(KeyEvent e){
		this.backspace=(e.getKeyCode()==8);
	}
	
	public void keyTyped(KeyEvent e){
		if (!this.backspace	&&     getText().length()>LimitedJTextField.this.maxLength-1 && getSelectedText() == null){
			e.consume();
		}
	}
}

}

// Você deve utilizar:

tfEstado = new LimitedJTextField(2);

Espero que ajude.

R

Ops, meu post anterior ficou sem identação.
:!:

renanmoraes

Renato Fróes

Valeu pela ajuda, é bem complicadinho fazer essa limitação em java :shock: mas aos poucos vou quebrando o gelo.

Valeu amigo :smiley:

Criado 16 de agosto de 2006
Ultima resposta 17 de ago. de 2006
Respostas 8
Participantes 4