Penso che dovresti crearti una sottoclasse di PlainDocument, ridefinendo il metodo:

public void insertString(int offs, String str, AttributeSet a)
throws BadLocationException

che viene utilizzato per inserire testo in un JTextField. Quindi imposti un'istanza di qesta classe come documento del tuo JTextField; nel metodo insertString dovresti quindi implementare il controllo sul testo inserito e ricordarti le stringhe inserite in un qualche modo.