Boa tarde!
Eu tenho um jtextField , que só aceita número e gostaria de saber como faço para limitar o número de dígitos nele.
Abrigada.
Boa tarde!
Eu tenho um jtextField , que só aceita número e gostaria de saber como faço para limitar o número de dígitos nele.
Abrigada.
Eu uso esse método:
public static String maxLength(String entrada,int tamanho){
StringBuffer saida = new StringBuffer();
char[] caracteres = removeCaracters(entrada).toCharArray();
for(int i=0;i<caracteres.length && i<=tamanho;i++){
saida.append(caracteres[i]);
}
return saida.toString();
}
E no evento do campo chamo assim:
txtOu.addKeyListener(
new KeyListener(){
public void keyTyped(KeyEvent e) {
txtOu.setText(maxLength(txtOu.getText(),8));
}
public void keyPressed(KeyEvent e) {
txtOu.setText(maxLength(txtOu.getText(),8));
}
public void keyReleased(KeyEvent e) {
txtOu.setText(maxLength(txtOu.getText(),8));
}
}
);
Pedrosa,
O que o “removeCaracteres(String)” faz???
Coloquei este código, mas esta dando este erro:
/home/lorena/XComERP/src/xcomerp/test/XtextField_int.java:124: void cannot be dereferenced
char[] caracteres = removeCaracters(entrada).toCharArray();
Segue o método, que permite somente números, agora funciona.
public static String removeCaracters(String entrada){
Pattern numericos = Pattern.compile("[0-9]",Pattern.CASE_INSENSITIVE);
Matcher encaixe = numericos.matcher(entrada);
StringBuffer saida = new StringBuffer();
while(encaixe.find())
saida.append(encaixe.group());
return saida.toString();
}
Muito obrigada Pedrosa, ficou ótimo.
ae aonde q coloco esse evento ele da erro
coloquei no mouse pressed e da erro aqui
jtf_longe_od_esf.addKeyListener(
new KeyListener(){
public void keyTyped(KeyEvent e) {
jtf_longe_od_esf.setText(maxLength(jtf_longe_od_esf.getText(),8));
}
public void keyPressed(KeyEvent e) {
jtf_longe_od_esf.setText(maxLength(jtf_longe_od_esf.getText(),8));
}
public void keyReleased(KeyEvent e) {
jtf_longe_od_esf.setText(maxLength(jtf_longe_od_esf.getText(),8));
}
}
);
no maxLength da erro diz settext em jcomponet nao pode ser aplicado
e esse metodo aqui aonde que eu uso ele ???
public static String removeCaracters(String entrada){
Pattern numericos = Pattern.compile("[0-9]",Pattern.CASE_INSENSITIVE);
Matcher encaixe = numericos.matcher(entrada);
StringBuffer saida = new StringBuffer();
while(encaixe.find())
saida.append(encaixe.group());
return saida.toString();
}
como uso no jtf_longe_od_esf esse nome do meu jtextfield