我想为格式化程序文本字段中的数字设置上限。假设有一个字符串具有以下格式:
036 12' 23.67"
第一个数字必须小于 180,因此当用户尝试键入大于 180 的数字时,它必须被屏蔽。我使用 MaskFormatter 如上所述格式化字符串,但我无法为第一个数字设置上限。我怎样才能做到这一点。谢谢。
我想为格式化程序文本字段中的数字设置上限。假设有一个字符串具有以下格式:
036 12' 23.67"
第一个数字必须小于 180,因此当用户尝试键入大于 180 的数字时,它必须被屏蔽。我使用 MaskFormatter 如上所述格式化字符串,但我无法为第一个数字设置上限。我怎样才能做到这一点。谢谢。
我不知道如何使用 JFormattedTextField 直接执行此操作。
一种解决方案是使用 InputVerifier,这样当用户离开时,他们会收到一条错误消息,并将焦点返回到文本字段。
另一种方法是将 DocumentFilter 添加到 AbstractDocument。然后,您可以在将文本添加到文档之前对其进行编辑。阅读 Swing 教程中有关文本组件功能的部分以获取更多信息。