【发布时间】:2013-08-17 17:44:30
【问题描述】:
有什么方法可以设置哪些键将字符放入 JTextField 中?
例如,如果我只想输入数字,当按下字母键时,该字母不会添加到 JTextField 中的现有文本中。
【问题讨论】:
-
您可以使用 KeyAdapter 并使用您不喜欢的密钥。
标签: java swing jtextfield documentlistener documentfilter
有什么方法可以设置哪些键将字符放入 JTextField 中?
例如,如果我只想输入数字,当按下字母键时,该字母不会添加到 JTextField 中的现有文本中。
【问题讨论】:
标签: java swing jtextfield documentlistener documentfilter
通过在您的 JTextField 中设置一个自定义文档,该文档将只在其中插入数值。
如Oracle文档中关于JTextField所示:
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
【讨论】: