Estava procurando um campo com formato monetário, e encontrei este http://www.guj.com.br/posts/list/64872.java que me serviu muito bem, só preciso que ele tenha 4 casas decimais…
tentei alterar o código sem sucesso, alguém poderia me dar uma ajuda?
consegui, caso alguém precise, só substituir o método abaixo
publicvoidinsertString(intoffs,Stringstr,AttributeSeta)throwsBadLocationException{Stringoriginal=getText(0,getLength());// Permite apenas digitar até 16 caracteres (9.999.999.999,99)if(original.length()<16){StringBuffermascarado=newStringBuffer();if(a!=nullAttribute){//limpa o camporemove(-1,getLength());mascarado.append((original+str).replaceAll("[^0-9]",""));for(inti=0;i<mascarado.length();i++){if(!Character.isDigit(mascarado.charAt(i))){mascarado.deleteCharAt(i);}}Longnumber=newLong(mascarado.toString());mascarado.replace(0,mascarado.length(),number.toString());if(mascarado.length()<5){if(mascarado.length()==1){mascarado.insert(0,"0");mascarado.insert(0,"0");mascarado.insert(0,"0");mascarado.insert(0,",");mascarado.insert(0,"0");}elseif(mascarado.length()==2){mascarado.insert(0,"0");mascarado.insert(0,"0");mascarado.insert(0,",");mascarado.insert(0,"0");}elseif(mascarado.length()==3){mascarado.insert(0,"0");mascarado.insert(0,",");mascarado.insert(0,"0");}elseif(mascarado.length()==4){mascarado.insert(0,",");mascarado.insert(0,"0");}}else{mascarado.insert(mascarado.length()-4,",");}if(mascarado.length()>8){mascarado.insert(mascarado.length()-8,'.');if(mascarado.length()>12){mascarado.insert(mascarado.length()-12,'.');if(mascarado.length()>16){mascarado.insert(mascarado.length()-16,'.');}}}super.insertString(0,mascarado.toString(),a);}else{if(original.length()==0){super.insertString(0,"0,0000",a);}}}}