我的文本字段代码:
JTextField txtNumeroDeOrigen = new JTextField();
txtNumeroDeOrigen.setBounds(237, 11, 125, 20);
contentPane.add(txtNumeroDeOrigen);
txtNumeroDeOrigen.setColumns(10);
在该字段中,我请求一个电话号码:###-###-####。用户输入,例如:7875556666
我想要一个 MaskFormatter,以便它写入 TextField,例如:(787) 555-6666。
所以我利用,只允许输入数字,而不是字母或稀有符号。
我见过一些例子,但它们对我不起作用。有什么简单的解决办法吗?
干杯!。
代替
JTextField
,您可以使用JFormattedTextField
* 以及javax.swing.text.MaskFormatter
. 那是(例如):* 要了解更多信息,您可以查看Java 教程中的如何使用格式化文本字段。
@Paul 提出的选项是一个很好的选项。使用JFormattedTextField来获得这个掩码,但是对于一个
TextField
你可以创建一个扩展PlainDocument的类,根据你想要给它的格式通过insertString方法进行评估。(para el ejemplo (###)###-###. sería)
我会这样
Document
分配TextField
:您可以使用
String.replaceFirst()