JTextField に文字を入れるキーを設定する方法はありますか?
たとえば、数字だけを入力したい場合、文字キーを押しても、その文字は JTextField の既存のテキストに追加されません。
JTextField に文字を入れるキーを設定する方法はありますか?
たとえば、数字だけを入力したい場合、文字キーを押しても、その文字は JTextField の既存のテキストに追加されません。
数値のみを挿入するカスタム Document を JTextField に設定する。
JTextFieldに関するOracleのドキュメントに示されているように:
public class UpperCaseField extends JTextField {
public UpperCaseField(int cols) {
super(cols);
}
protected Document createDefaultModel() {
return new UpperCaseDocument();
}
static class UpperCaseDocument extends PlainDocument {
public void insertString(int offs, String str, AttributeSet a)
throws BadLocationException {
if (str == null) {
return;
}
char[] upper = str.toCharArray();
for (int i = 0; i < upper.length; i++) {
upper[i] = Character.toUpperCase(upper[i]);
}
super.insertString(offs, new String(upper), a);
}
}
}
詳細: http://docs.oracle.com/javase/7/docs/api/javax/swing/JTextField.html