[英]Numbers length of JFormattedTextField mask Java
我正在使用Java開發桌面應用程序,現在我正在注冊個人數據。 人員表單的字段之一是“ DocumentTextField”,其中包含“標識文檔”和“編號”,這就是為什么我嘗試使用JFormattedTextField掩碼來幫助用戶使用此字段格式的原因。
基本上,我只是使用AbstracFormatterFactory創建掩碼:
遮罩= UU-##########得到類似(PP-0123456789)
它確實可以實時運行,用戶只需鍵入“ pp0123456789”,掩碼就會變成“ PP-0123456789”,這就是數字長度,正如您在我的掩碼上看到的那樣,我聲明了10個數字(#### ######),但實際上,它可能低於10個數字甚至更高。 它僅適用於10個數字,如果用戶鍵入的數字少於10個,則JFormattedTextField會重置為空,如果用戶鍵入的數字超過10個,則會發生相同的情況。
有什么方法可以聲明其范圍(數字長度)嗎? 有些文件只有5個數字(PP-01234)。
首先,非常感謝您閱讀本文並嘗試提供幫助。
我假設您正在使用Java 8進行開發。 您看到任何一種ParseException
嗎?
根據組件的文檔: https : //docs.oracle.com/javase/8/docs/api/javax/swing/text/MaskFormatter.html
如果字符串的長度小於掩碼的長度,則在初次格式化值時,會發生兩件事。 要么使用占位符字符串,要么使用占位符字符。 占位符字符串優先。
根據示例:
MaskFormatter formatter = new MaskFormatter("###-####");
formatter.setPlaceholderCharacter('_');
setPlaceHolderCharacter方法可以幫助您解決問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.