установить DocumentFilter
PlainDocument
текстового поля.
Пример:
PlainDocument document = new PlainDocument();
document.setDocumentFilter(new DocumentFilter() {
@Override
public void insertString(FilterBypass fb, int offset, String text, AttributeSet attrs) throws BadLocationException {
fb.insertString(offset, filter(text), attrs);
}
@Override
public void replace(FilterBypass fb, int offset, int length, String text, AttributeSet attrs) throws BadLocationException {
fb.replace(offset, length, filter(text), attrs);
}
private String filter(String text) {
StringBuilder builder = new StringBuilder(text);
for (int i = 0; i < builder.length();) {
if (Character.isDigit(builder.charAt(i))) {
i += 1;
} else {
builder.deleteCharAt(i);
}
}
return builder.toString();
}
});
JTextField field = new JTextField(document, null, 0);