Como voces fazem para setar uma mascara para um valor em um JFormattedField, exemplo:
se eu setar a mascara “###.###,##”
eu nao consigo digitar por exemplo 1.500,00…
como posso setar a mascara para ele nao obrigar as posicoes que eu coloquei na mascara…
JFormattedField setar mascara para valor
D
4 Respostas
//exemplo CPF
MaskFormatter cpf = new MaskFormatter("###.###.###-##");
cpf.install(JFormattedTextField);
Mas vc quer colocar a mascara e o campo nao respeitar essa mascara??? Tipo, setar e ele nao tornar obrigatorio a formatação?
D
eu sei como setar a mascara, o que eu disse foi que ao setar a mascara fico preso a ter que digitar todos os numeros, imagine que meu campo possa conter um valor de 10 centavos a 10 milhoes,
quero que a mascara nao me force a digitar todos os numeros no caso dos 10 centavos,
000.000.010,00
isso por que a mascara foi setada como
###.###.###,##
Veja essa classe:
package varias;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;
public class FormDecimal extends PlainDocument{
/**
*
*/
private static final long serialVersionUID = 1L;
public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
String texto = getText(0,getLength());
if(texto.length()<9){
if (texto.length() > 0){
if (texto.substring(0,1).equals("0")){
texto = texto.substring(1,texto.length());
}
}
remove(0,getLength());
StringBuffer strBuf = new StringBuffer(texto.replaceAll(",","")+str);
if(strBuf.length()<3){
strBuf.insert(0,"0,");
}else{
strBuf.insert(strBuf.length()-2,",");
}
super.insertString(0, strBuf.toString(), a);
}
}
}
Depois de criar ela: JFormattedTextField.setDocument(objeto_da_classe_FormDecimal);
Desculpe ae, mas nao coube direito na tela rsrsrs…
Veja se ajuda. 
D
É isso que precisa para formatar o campo:
public void aplicaMascaraDecimal(String mascaraCampo) {
java.text.DecimalFormat decimal = new java.text.DecimalFormat(mascaraCampo);
javax.swing.text.NumberFormatter numFormatter = new javax.swing.text.NumberFormatter(decimal);
numFormatter.setFormat(decimal);
numFormatter.setAllowsInvalid(false);
this.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(numFormatter));
this.setHorizontalAlignment(javax.swing.JTextField.TRAILING);
}
Criado 26 de abril de 2007
Ultima resposta 26 de abr. de 2007
Respostas 4
Participantes 2
Alura Git Flow: entenda o que é, como e quando utilizar Entenda o que é Git Flow, como funciona seu fluxo com branches como Master, Develop, Feature, Release e Hotfix, além de vantagens e desvantagens.
Casa do Codigo Ontologias e Web Semantica: Do conceito a aplicacao Por Ivam Galvao Filho — Casa do Codigo