如何在 Java 中的 JTextField 中仅允许浮动
我试图在我的程序中添加一个简单的货币转换器工具,但遇到了障碍。有没有一种简单的方法只允许浮点数作为 Java 中 JTextField 的输入。根据我在网上阅读的内容,使用 JFormattedTextField 使用起来很痛苦。我需要创建一个类来进行一些过滤吗?
I am trying to add a simple currency converter tool to my program yet I hit barrier. Is there a simple way of only allowing float numbers as input to a JTextField in Java. From what I have read online, using JFormattedTextField is a pain to use. Would I need to create a class to do some filtering?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
JFormattedTextField 应该不会太困难。只需要传入一个格式化程序作为参数,并且应该自行处理。您可以从 java API 获取该信息,该 API 将使用区域设置,如下所示:
new JFormattedTextField(java.text.NumberFormat.getCurrencyInstance());
JFormattedTextField shouldnt be all too dificult. Just need to pass in a Formatter in as a parameter and should take care of itself. you can get that from the java API which would use the region settings like so:
new JFormattedTextField(java.text.NumberFormat.getCurrencyInstance());
最好使用
JFormattedTextField
。It would be better to use
JFormattedTextField
.您可以使用 JFormattedTextField,但它会带来非常糟糕的用户体验。最好在输入时丢弃不适当的字符。
DocumentFilter
提供了一种相对(对于 Swing)干净的方法来执行此操作。 (编辑:原始答案链接到我在现已不复存在的博客上写的一个简单示例。)You can use
JFormattedTextField
, but it gives a really terrible user experience. Better to discard inappropriate characters as the are entered.DocumentFilter
provides a relatively (for Swing) clean way to do this. (Edit: Original answer had links to a trivial example I wrote on my now defunct blog.)我同意 vcetinick 的观点,因为 JFormattedTextField 对于格式化文本输入很有用。
然而,如果你想验证JTextField中输入的值,你可能需要自己实现ActionListener:
I agree with vcetinick because JFormattedTextField is useful for formatting text input.
However, if you want to verify the value inputted in JTextField, you may need to implement ActionListener yourself: