вы можете использовать другое решение, которое я предпочитаю
написать свой класс документа и переписать его insertString
методом, используя regex expr
пример:
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.text.AttributeSet;
import javax.swing.text.PlainDocument;
/**
*
* @author cpp-qt
*/
public class HexDocument extends PlainDocument {
private String text = "";
@Override
public void insertString(int offset, String txt, AttributeSet a) {
try {
text = getText(0, getLength());
if ((text + txt).matches("[0-9a-fA-F]{0,7}")) {
super.insertString(offset, txt, a);
}
} catch (Exception ex) {
Logger.getLogger(HexDocument.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
1010 * тогда *
установить его как документ вашего textField, как это this.jTextField1.setDocument(new HexDocument());
я думаю, что это лучше, чем использовать jFormattedTextField