Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.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中设置JFormatterTextfield中的数字上限_Java_Swing_Jformattedtextfield - Fatal编程技术网

在Java中设置JFormatterTextfield中的数字上限

在Java中设置JFormatterTextfield中的数字上限,java,swing,jformattedtextfield,Java,Swing,Jformattedtextfield,我想在formatter textfield中设置一个数字的上限。假设有一个字符串具有以下格式: 036 12'23.67“ 第一个数字必须小于180,因此当用户尝试键入大于180的数字时,必须将其屏蔽。 我使用MaskFormatter如上所述格式化字符串,但我无法为第一个数字设置上限。我如何才能做到这一点。谢谢。我不知道如何直接使用JFormattedTextField实现这一点 一种解决方案是使用InputVerifier,这样当用户将标签移开时,他们将得到一条错误消息,焦点将返回到文本字

我想在formatter textfield中设置一个数字的上限。假设有一个字符串具有以下格式:

036 12'23.67“

第一个数字必须小于180,因此当用户尝试键入大于180的数字时,必须将其屏蔽。
我使用MaskFormatter如上所述格式化字符串,但我无法为第一个数字设置上限。我如何才能做到这一点。谢谢。

我不知道如何直接使用JFormattedTextField实现这一点

一种解决方案是使用InputVerifier,这样当用户将标签移开时,他们将得到一条错误消息,焦点将返回到文本字段


另一种方法是将DocumentFilter添加到AbstractDocument。然后,您可以在将文本添加到文档之前对其进行编辑。有关详细信息,请阅读Swing教程中的部分。

当输入大于180的数字时,您希望的行为是什么?通知用户?自动设置为180?静默失败?用户不应该这样做无法输入大于180的数字。+1大写想法!实现
HeadingFormat
可能是值得的;这里有一个
DateTimeVerifier
供参考:感谢您的回答,但键入时应像MaskFormatter一样屏蔽无效值。无效数字不应显示在文本字段中。一个还有其他建议吗?这就是DocumentFilter的用途。它会在键入字符时截取字符。