Estou precisando de um TextField com os seguintes requisitos:
- tamanho definido
- escreve da direita para esquerda
- soh aceita numeros
alguem se habilita ?
Estou precisando de um TextField com os seguintes requisitos:
alguem se habilita ?
eu utilizei um tutorial que tem aqui no guj para limitar o tamanho dos fields.
te aconselho a utlizar formatedField. no netbeans, vem incluso algumas mascaras pré-definidas, sem falar que vc pode criar sua propria mascara.
vale a pena conferir.
artigo sobre textfield que tbm serve para formatedfield : http://www.guj.com.br/java.tutorial.artigo.29.1.guj

Valeu Zakim
tinha encontrado um bem parecido que resolveu 2 dos mes 3 problemas
escreve da direita para a esquerda e limita, porem continua a aceitar letras
segue o código
public class Monetario extends PlainDocument{
public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
String texto = getText(0,getLength());
if(texto.length()<7){
remove(0,getLength());
StringBuffer strBuf = new StringBuffer(texto.replaceAll(",","")+str);
if(strBuf.length()<3)
strBuf. insert(0,",");
else
strBuf.insert(strBuf.length()-2,",");
super.insertString(0, strBuf.toString(), a);
}
}
}
Valeus
então adote o JFormatedFIeld. As mascaras nao permitem que letras sejam inseridas! 
Use o MaskFormatter. Ele vai impedir que o usuario insira letras. Alias, com ele vc define o que aceitar como entrada. Dá uma procurada que vc acha como usar.
Espero ter ajudado,
Rodrigo.
Aqui tem um pronto:
JMoneyField
Funciona perfeitamente.
Boa sorte! Até mais. :thumbup:
Fiz esse que vc limita e so aceita numeros…
Nesse metodo que limita so numeros…
A classe completa…
/**
* @author lcorrea
**/
public class NumberCaseField extends JTextField {
private static final long serialVersionUID = 3544668503492998195L;
private int tamanho;
public NumberCaseField(int cols) {
super(cols);
tamanho = cols;
}
protected Document createDefaultModel() {
return new NumberCaseDocument();
}
public class NumberCaseDocument extends PlainDocument {
private static final long serialVersionUID = 3760566386191052855L;
private char[] upper;
public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
if (str == null | tamanho == offs) {
Toolkit.getDefaultToolkit().beep();
return;
}
if(Character.isDigit(str.charAt(0))){
upper = str.toCharArray();
}else{
upper = new char[0];
}
super.insertString(offs, new String(upper), a);
}
}
}
Espero ter ajudado…
Aqui tem um pronto:
JMoneyFieldFunciona perfeitamente.
Boa sorte! Até mais. :thumbup:
Verdade funciona perfeitamente :thumbup:
Valeu…
Antes de encerrar o tópico…
Formatei como Valor o campo… ele fica assim…
1.000,50 por exemplo
porem isso é uma string
gostaria de saber se para eu passar isso para Floar ou Double
vou ter que implementar um metodo para remover o “.” e as ","
ou tem outro jeito de fazer isso ?
FLwS
cara. eh soh sobrescrever o metodo getText(), e ja mandar a string no formato de double ou BigDecimal…
tipo:
@Override
public String getText()
{
return super.getText().replace(".", "").replace(",", ".");
}