【问题标题】:About auto formatting numbers in java swing关于java swing中的自动格式化数字
【发布时间】:2011-09-09 02:12:06
【问题描述】:

现在我需要制作一个小程序并使用 JTextField 或 JFormattedTextField 供用户输入数字。我想问一下如何在用户输入过程中自动格式化输入数字,就像普通计算器一样?

例如: 当用户输入 1000 时,JTextField/JFormattedTextField 中显示为 1,000,当用户继续输入一个零位时,则显示为 10,000

谢谢。

【问题讨论】:

  • 这可能会给你一些线索/想法:stackoverflow.com/questions/1320117/…
  • 一些相关的例子可以在herehere找到。
  • “现在我需要制作一个小程序..”真的需要一个小程序,还是只需要一个 Java 应用程序。可以从链接启动?
  • @Andrew Thompson:不一定是applet,只要是一个使用swing的java应用就可以了。

标签: java swing


【解决方案1】:

如果您希望在用户仍在编辑 JTextField 时放置/删除逗号,则不能使用PropertyChangedListener,因为该事件仅在字段失去焦点或用户按下回车键时触发(来自@trashgod 的 link)。

如果您改用DocumentListener,则可以捕获在用户键入时发生的insertUpdateremoveUpdate 事件。当您捕获这些事件时,请编写一些从小数点左侧的第一个数字开始的代码,并根据需要删除/插入逗号。

【讨论】:

  • 感谢您的回答,但在 DocumentListener api 文档中,它提到:“文档侦听器不应修改文档的内容;在通知侦听器时更改已经完成更改。相反,编写一个自定义文档来覆盖 insertString 或 remove 方法,或两者​​兼而有之。有关详细信息,请参阅侦听文档上的更改。”我想我会去创建一个自定义文档并尝试使用它=]
猜你喜欢
  • 1970-01-01
  • 2010-09-10
  • 1970-01-01
  • 1970-01-01
  • 2017-05-06
  • 1970-01-01
  • 2012-06-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多