2014-10-07 67 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設置爲字母。

它已經解決了我的問題很少的代碼行。