【问题标题】:How to format the content of a textfield while typing如何在键入时格式化文本字段的内容
【发布时间】:2015-04-17 16:07:26
【问题描述】:

如何在用户输入时格式化文本字段的内容。具体来说,我想为数字添加千位分隔符。

(如果输入无效/非数字怎么办?理想情况下,格式不会被应用。但对于我来说,首先防止无效输入也是一个可以接受的解决方案 - 如果有这样做的好方法!)

我已经寻找这个问题的解决方案很长时间并尝试了很多示例,但是现有的答案(例如Question about JTextField and text format with numbers?)都不能令人满意。

非常感谢!

【问题讨论】:

  • 你想在用户输入时格式化还是在失去焦点事件之后格式化?
  • 您是否尝试过自己解决这个问题,而不是寻找现成的解决方案?
  • 当用户输入时
  • 事实上我已经投入了几个小时试图自己找到解决方案:-)

标签: java user-interface text dynamic formatting


【解决方案1】:

默认情况下,Java 的控件不能很好地做到这一点。我建议使用 ImprovedFormattedTextField 之类的东西,这篇文章中有很好的记录:

Is there any way to accept only numeric values in a JTextField?

您的问题并不完全是重复的,但您应该能够使课程按预期工作。如果数字格式不正确,背景将变为红色。

【讨论】:

  • 我的问题主要不是关于防止无效输入。我对格式化(添加千位分隔符)感兴趣。我认为使用ImprovedFormattedTextField 无法做到这一点。在示例中,他们使用属性更改侦听器来更改某些外部组件或属性。但是,更改文本本身会导致无限递归
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-02
  • 2013-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多