簡體   English   中英

JFormattedTextField掩碼Java的數字長度

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM