限制和格式化JTextfield Java

限制和格式化JTextfield Java,java,swing,formatting,jtextfield,Java,Swing,Formatting,Jtextfield,可能重复: 我有一个JTextfield,用户在其中输入“社会安全号码”。SSN有9位数字和2个破折号,总共11个字符 如何将JTextField限制为11个字符,并在11个字符的第4和第7个位置的textfield中添加2个破折号 我有一个想法,就是使用一个IF语句,声明soc(它将是Jtextfield的输入)必须大于或等于00000000 1,小于或等于99999999,然后一旦确定。我是否可以使用子字符串为位置0-2指定变量,而不是用“-”连接,然后为位置3-4创建另一个子字符串,并将

可能重复:

我有一个JTextfield,用户在其中输入“社会安全号码”。SSN有9位数字和2个破折号,总共11个字符

如何将JTextField限制为11个字符,并在11个字符的第4和第7个位置的textfield中添加2个破折号

我有一个想法,就是使用一个IF语句,声明soc(它将是Jtextfield的输入)必须大于或等于00000000 1,小于或等于99999999,然后一旦确定。我是否可以使用子字符串为位置0-2指定变量,而不是用“-”连接,然后为位置3-4创建另一个子字符串,并将其与先前的变量连接,最后添加“-”,然后完成输入


可能吗?这合乎逻辑吗

JFormattedTextField似乎很有帮助,但相信我,事实并非如此。它过于复杂和神秘,无法尝试并正确配置


相反,要考虑扩展。通过覆盖
insertString
replace
delete
,您可以控制在何处输入哪些字符。

提供给您的答案完全可以接受(并且正确)。有什么问题吗?投票以完全相同的方式结束这个问题。“JFormattedTextField看起来可能有用,但相信我,它不是。尝试并正确配置它太复杂和神秘了。”…你不可能是认真的…完全是。JFormattedTextField,特别是带有掩码格式化程序的字段(根据我的经验),很难以可接受的方式进行配置。也许只有我一个人,但是
Document
s和
DocumentFilter
s是实现同一目标的更容易的途径。我遇到的一个更具体的问题是能够从JFormattedTextField中删除所有文本。在这种情况下,我从来没能让它正常运作。@Ben:你的立场并非完全没有根据,但一两次可能会提供信息。@Trashgood谢谢你的帮助!从现在起,我将确保包括来源。:)