Colar em campo somente números

Ae pessoal, estou utilizando as seguintes classes para aceitar somente números num JTextField e também para limitar a quantidade de caracteres:

import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;

public class JTextFieldNumbersLimit extends FixedLengthDocument {

    public JTextFieldNumbersLimit(int maxlen) {
        super(maxlen);
    }

    @Override
    public void insertString(int offset, String str, AttributeSet attr)
            throws BadLocationException {
        if (str == null) {
            return;
        }

        try {
            Integer.parseInt(str);
        } catch (Exception e) {
            return;
        }

        super.insertString(offset, str, attr);
    }
}

class FixedLengthDocument extends PlainDocument {

    private int maxLength;

    public FixedLengthDocument(int maxlen) {
        super();

        if (maxlen <= 0) {
            throw new IllegalArgumentException("You must specify a maximum length!");
        }

        maxLength = maxlen;
    }

    @Override
    public void insertString(int offset, String str, AttributeSet attr)
            throws BadLocationException {
        if (str == null || getLength() == maxLength) {
            return;
        }

        int totalLen = (getLength() + str.length());
        if (totalLen <= maxLength) {
            super.insertString(offset, str, attr);
            return;
        }

        String newStr = str.substring(0, (maxLength - getLength()));
        super.insertString(offset, newStr, attr);
    }
}

O problema é que o campo não aceita eu colar alguma coisa nele. Até que colar ainda não é o maior problema,
o problema real é que estou fazendo um cadastro e quando carrego um registro do banco eu preciso preencher
os dados retornados no campo:

        txInscricaoEstadual.setText(fornecedor.getInscricaoEstadual());

Mas não funciona. Alguém tem uma idéia?

Debugando aqui descobri o que estava acontecendo.
Estava lançando uma exeção java.lang.numberformatexception no trecho:

        try {  
            Integer.parseInt(str);  
        } catch (Exception e) {  
            return;  
        } 

Tava recendo uma string com um número muito grande para converter em int.
Daí fiz a seguinte alteração:

            Long.parseLong(str);  

E funcionou beleza. Desculpem pelo incômodo ai.