【问题标题】:Java Swing - JFormattedTextFieldJava Swing - JFormattedTextField
【发布时间】:2014-10-07 00:40:23
【问题描述】:

我的表单中有 JFormattedTextField 。我想验证字段中插入的长度和字符。

例如,名字的长度不得超过 20 个字符,并且不得插入任何特殊字符和数字字符。空间可以考虑。

请帮助我如何实现这个目标。

【问题讨论】:

  • 在问这里之前你有什么尝试过的吗?例如,您是否使用 Google 的搜索引擎来查找 JFormattedTextField 的文档?
  • 您至少有两个选择,您可以尝试使用DocumentFilter,查看Implementing a Document FilterDocumentFilter Examples 了解更多详情或尝试使用InputVerifier,查看Validating Input 了解更多详情
  • 我已尝试将 formatterFactory 属性设置为 (?????????????????????)。这确实只接受 20 个字符。但它不能正常工作。更改焦点时,文本仍显示为空白,并且会自动插入一些空格。

标签: java swing validation jformattedtextfield


【解决方案1】:

我想验证字段中插入的长度和字符。

在您的JFormattedTextField 中使用MaskFormatter。使用 MaskFormatter,您可以:

  1. 限制字符数
  2. 提供一串有效字符

阅读 API 以获取更多信息和示例。

【讨论】:

  • 我一直在尝试将 Mask Formatter 用于我的 jFormatterTextField。 MaskFormatter mf=new MaskFormatter("????????????????????");我想限制我的文本字段接受 20 个字符(没有数字也没有特殊字符)。但是,如果我尝试输入少于 20 个字符,则文本字段中的文本将变为空白。并且正在插入空格。它只接受 20 个字符。我应该如何修改我的面具?
  • @GauravGandhiu,我不知道如何让你输入少于 20 个。忘记这个建议。相反,我会接受 MadProgrammers 的建议,使用 DocumentFilter
  • 我们可以将掩码格式化程序设置为 ("**********"),这样我们甚至可以接受少于 20 个字符,并将有效字符设置为字母。它用很少的几行代码就解决了我的问题。
【解决方案2】:

我们可以将掩码格式化程序设置为 ("**********"),这样我们甚至可以接受少于 20 个字符,并将有效字符设置为字母。

它用很少的代码行解决了我的问题。

【讨论】:

    猜你喜欢
    • 2015-11-24
    • 2015-02-09
    • 2012-01-24
    • 1970-01-01
    • 2023-04-08
    • 2010-09-09
    • 2013-08-12
    • 2011-11-14
    • 2013-04-01
    相关资源
    最近更新 更多