Tenho campos que apenas podem aceitar numeros ou o “.”;
Tentei usar um JFormattedTextField para restringir isso…
[code] MaskFormatter formato = null;
try {
formato = new MaskFormatter( "*****" );
formato.setValidCharacters( "0123456789." );
}
catch( ParseException pex ) {
pex.printStackTrace();
}
JFormattedTextField field = new JFormattedTextField( formato );
[/code]
Só que meu problema é o seguinte… nem sempre necessariamente a pessoa digitara todos os numeros… Ex:
ela pode digitar “234” ou “8794.6” … so que quando uso uma mascara parece que necessariamente eu sempre tenho que preencher totalmente ela… tem algum metado que especifica que a mascara pode ser totalmente completa ou apenas parcialmente??
vlws…
@author hempx
*/
public class DocumentNumber extends PlainDocument{
private int maxLength;
private int ponto; // posição do separador decimal, -1 quando ele não foi inserido ainda.
public DocumentNumber( int maxLength ) {
super();
this.maxLength = maxLength;
this.ponto = -1;
}
public void insertString( int offset, String str, AttributeSet attr )
throws BadLocationException
{
if( str == null )
return;
public void remove( int offs, int len ) throws BadLocationException {
if( ponto >= offs && ponto < ( offs + len ) )
ponto = -1;
else if( ponto != -1 && ( offs + len ) <= ponto )
ponto = ponto - len;
super.remove( offs, len );