色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java設置文本框為數字和字母

吉茹定1年前7瀏覽0評論

在Java中,我們經常會需要設置文本框只允許輸入數字或字母。下面我們來介紹一下如何使用Java代碼來完成這個任務。

//設置文本框只允許輸入數字
JTextField textField = new JTextField();
textField.setDocument(new NumberOnlyDocument());

上述代碼中,我們使用了一個自定義的文本框限制器NumberOnlyDocument,它只允許輸入數字。

class NumberOnlyDocument extends PlainDocument {
public NumberOnlyDocument() {
super();
}
public void insertString(int offset, String str, AttributeSet attr) throws BadLocationException {
if (str == null) {
return;
}
char[] chars = str.toCharArray();
boolean ok = true;
for (int i = 0; i< chars.length; i++) {
try {
Integer.parseInt(String.valueOf(chars[i]));
} catch (NumberFormatException exc) {
ok = false;
break;
}
}
if (ok) {
super.insertString(offset, new String(chars), attr);
}
}
}

在NumberOnlyDocument中,我們重寫了PlainDocument的insertString方法,在文本框輸入內容時,先將輸入的字符轉換為字符數組,在遍歷字符數組中的每一個字符,檢查是否為數字,如果是數字,則允許輸入,否則將輸入的字符忽略。

//設置文本框只允許輸入字母
JTextField textField = new JTextField();
textField.setDocument(new LetterOnlyDocument());

同樣地,我們可以自定義一個文本框限制器LetterOnlyDocument,它只允許輸入字母。

class LetterOnlyDocument extends PlainDocument {
public LetterOnlyDocument() {
super();
}
public void insertString(int offset, String str, AttributeSet attr) throws BadLocationException {
if (str == null) {
return;
}
char[] chars = str.toCharArray();
boolean ok = true;
for (int i = 0; i< chars.length; i++) {
if (!Character.isLetter(chars[i])) {
ok = false;
break;
}
}
if (ok) {
super.insertString(offset, new String(chars), attr);
}
}
}

在上述代碼中,我們只需將遍歷字符數組中的判斷條件改為判斷是否為字母即可。

通過以上的代碼,我們就可以輕松地實現文本框只允許輸入數字或字母的限制。