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

发布于 2024-08-24 03:20:59 字数 174 浏览 7 评论 0原文

我想在格式化程序文本字段中设置数字的上限。假设有一个字符串,其格式如下:

036 12' 23.67"

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

I want to set upper bound for a number in formatter textfield. Let's say that there is a string which has following format:

036 12' 23.67"

The first number must be less than 180, so when the user tries to type a number greater than 180, it must be masked.
I used MaskFormatter to format string as above, but I couldn't set an upper bound for the first number. How can I achieve this. Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

莫相离 2024-08-31 03:20:59

我不知道如何直接使用 JFormattedTextField 执行此操作。

一种解决方案是使用 InputVerifier,这样当用户按 Tab 键离开时,他们将收到一条错误消息,并且焦点将返回到文本字段。

另一种方法是将 DocumentFilter 添加到 AbstractDocument。然后,您可以在将文本添加到文档之前对其进行编辑。阅读 Swing 教程中关于文本组件功能的部分更多信息。

I don't know how to do this directly with a JFormattedTextField.

One solution is to use an InputVerifier so that when the user tabs away they will get an error message and focus is returned to the text field.

Another approach is to add a DocumentFilter to the AbstractDocument. Then you can edit the text before it is added to the Document. Read the section from the Swing tutorial on Text Component Features for more information.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文