設置文本字段的PlainDocument
的DocumentFilter
。
樣品:
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);
我試試evt.consume();並返回;停止事件,但不工作 –
我誠實的第一反應:爲什麼沒有人似乎記得一個偉大的發明?搜索引擎!谷歌搜索會給你一個合適的解決方案,毫無疑問... – Andy