2014-10-07 65 views
-4

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

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

请帮我一下,我该如何实现这个目标。

+2

在问这里之前有没有尝试过吗?例如,您是否使用过Google的搜索引擎来查找JFormattedTextField的文档? – APerson 2014-10-07 00:42:05

+1

您至少有两个chocies,您可以尝试使用'DocumentFilter',参见[实现文档过滤器](http://docs.oracle.com/javase/tutorial/uiswing/components/generaltext.html#filter)和[DocumentFilter Examples](http://www.jroller.com/dpmihai/entry/documentfilter)以获取更多详细信息,或尝试使用'InputVerifier',请参见[验证输入](http://docs.oracle.com/javase/ tutorial/uiswing/misc/focus.html#inputVerification) – MadProgrammer 2014-10-07 00:43:11

+0

我已经尝试将formatterFactory属性设置为(????????????????????)。这只接受20个字符。但它不能正常工作。当焦点正在改变时,文本仍然显示为空白,并且一些空格会自动插入。 – 2014-10-07 01:14:10

回答

1

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

使用MaskFormatter和您的JFormattedTextField。随着MaskFormatter之外,您可以:

  1. 限制字符
  2. 的数量提供有效字符

一个String阅读更多信息和示例的API。

+0

我一直在尝试为我的jFormatterTextField使用Mask Formatter。 MaskFormatter mf = new MaskFormatter(“????????????????????”); 我想限制我的文本字段接受20个字符(没有数字也没有特别的)。 但是,如果我想输入少于20个字符,文本字段中的文本变得空白。正在插入空格。它只接受20个字符。我应该如何修改我的面具? – 2014-10-07 01:41:38

+0

@GauravGandhiu,我不知道如何让你输入少于20.忘记这个建议。相反,我会与MadProgrammers建议使用“DocumentFilter”。 – camickr 2014-10-07 03:41:51

+0

我们可以将掩码格式化程序设置为(“**********”),以便我们甚至可以接受少于20个字符,并将setValidCharacters设置为字母。 它已经解决了我的问题,只有很少的几行代码。 – 2014-10-07 19:10:07

0

我们可以将掩码格式化程序设置为(“**********”),以便我们甚至可以接受少于20个字符,并将setValidCharacters设置为字母。

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