java - 在 JTextField 中设置可输入的字符

标签 java swing jtextfield documentlistener documentfilter

有什么方法可以设置哪些键将字符放入 JTextField 中?

例如,如果我只想输入数字,则当按下字母键时,该字母不会添加到 JTextField 中的现有文本中。

最佳答案

通过在 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

关于java - 在 JTextField 中设置可输入的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18254326/

相关文章:

java - flutter : Gradle threw an error while trying to update itself. 正在重试更新... Gradle 任务 assembleDebug 失败,退出代码 1

Java:使用 Apache commons-IO 2.4 在子目录中递归列出文件

java - 如何在 map 上显示不同的标记?

java - 任何更改 JTable 组件默认行为的方法

java - 用于过滤/搜索的 Swing JTable 自定义

java - 获取所有JtextField文本的简单方法

java - 将文件写入 ServletOutputStream 的最有效方法

java - Applet 中的 SWT FileDialog 不显示

java - 如何获取放置文档的 JTextField 名称?

java - 如何在运行时将文本设置为 JTextFields 的 null?