您好,登錄后才能下訂單哦!
Swing中JFormattedTextField組件如何使用,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
清單 1. 定義輸入掩碼
// Four-digit year, followed by month name and day of month, // each separated by two dashes (--) DateFormat format = new SimpleDateFormat("yyyy--MMMM--dd"); DateFormatter df = new DateFormatter(format); // US Social Security number MaskFormatter mf1 = new MaskFormatter("###-##-####"); // US telephone number MaskFormatter mf2 = new MaskFormatter("(###) ###-####");
一旦您指定了輸入格式,您隨后就要將格式化器傳入 JFormattedTextField 構造器中,如下所示:
還有其它一些可配置的選項,它們取決于您使用的格式化器。例如:用 MaskFormatter ,您能用 setPlaceholderCharacter(char) 設置占位符字符。另外,對于日期域,如果您將域初始化為某個值使一個用戶知道什么樣的輸入格式是可接受的,這樣將會有所幫助。
全部組合在一起
創建屏蔽輸入域的一切都已就緒。清單 2 通過把以前的代碼片斷組合在一起,為您提供了一個用于檢驗新性能的完整示例。圖 1 展示了這個示例的顯示。隨便調整各個掩碼來檢驗其他的掩碼字符。
清單 2.Swing的JFormattedTextField組件示例
import java.awt.*; import javax.swing.*; import javax.swing.text.*; import java.util.*; import java.text.*; public class FormattedSample { public static void main (String args[]) throws ParseException { JFrame f = new JFrame("JFormattedTextField Sample"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container content = f.getContentPane(); content.setLayout(new BoxLayout(content, BoxLayout.PAGE_AXIS)); // Four-digit year, followed by month name and day of month, // each separated by two dashes (--) DateFormat format = new SimpleDateFormat("yyyy--MMMM--dd"); DateFormatter df = new DateFormatter(format); JFormattedTextField ftf1 = new JFormattedTextField(df); ftf1.setValue(new Date()); content.add(ftf1); // US Social Security number MaskFormatter mf1 = new MaskFormatter("###-##-####"); mf1.setPlaceholderCharacter('_'); JFormattedTextField ftf2 = new JFormattedTextField(mf1); content.add(ftf2); // US telephone number MaskFormatter mf2 = new MaskFormatter("(###) ###-####"); JFormattedTextField ftf3 = new JFormattedTextField(mf2); content.add(ftf3); f.setSize(300, 100); f.show(); } }
關于Swing中JFormattedTextField組件如何使用問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。