Guarda che non serve alcun KeyListener e il DigitsOnlyPlainDocument (o come tu vuoi poi chiamarlo) devi istanziarlo e sopratutto assegnarlo al JTextField (tramite costruttore o setDocument() ) solo 1 volta!!!
Possibile che nemmeno con un esempio completo sia chiaro???![]()