Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 它';在Swing中,是否可以将JTextField配置为仅接受数字?_Java_Swing_Numbers_Mask - Fatal编程技术网

Java 它';在Swing中,是否可以将JTextField配置为仅接受数字?

Java 它';在Swing中,是否可以将JTextField配置为仅接受数字?,java,swing,numbers,mask,Java,Swing,Numbers,Mask,可能重复: Swing的JTextField上是否有只允许在一个数字范围内使用正数的功能 示例:我只能输入10到30之间的数字。超出此范围的数字甚至不会出现在字段中。使用带有喷丝头的JSpinner-最终用户将感谢您。好的,不是字面上的意思,但至少他们不会因为强迫他们用箭头键键入他们想选择的内容而诅咒你的名字 例如。 创建扩展PlainDocument的自定义类 public class NumericDocument extends PlainDocument 在该类中,重写insertS

可能重复:

Swing的JTextField上是否有只允许在一个数字范围内使用正数的功能


示例:我只能输入10到30之间的数字。超出此范围的数字甚至不会出现在字段中。

使用带有
喷丝头的
JSpinner
-最终用户将感谢您。好的,不是字面上的意思,但至少他们不会因为强迫他们用箭头键键入他们想选择的内容而诅咒你的名字

例如。
创建扩展PlainDocument的自定义类

public class NumericDocument extends PlainDocument
在该类中,重写insertString。网上有很多例子使用Character.isDigit方法检查每个输入值,以检查是否为数字

创建JTextField时使用

JTextField numericTextOnlyField = new JTextField(new NumericDocument())

在insertString方法中,您可以检查插入的值是否在您允许的范围内

,这不会将输入限制为10到30之间的值。最好使用DocumentFilter,正如这里多次描述的那样。-)奇怪的搜索规则,errrghh我终于找到了…,有人忘记了…-)+1此处已回答此问题:>如果17不接受“1”作为输入,您将如何输入17?最好在保存/提交时验证输入
JTextField numericTextOnlyField = new JTextField(new NumericDocument())