如何使用占位符字符设置JFormattedTextField的值?

5Yr*_*DBA 4 java

我有一个IP地址的格式化文本字段:

ipmask = new MaskFormatter("###.###.###.###");
ipmask.setPlaceholderCharacter(' ');
field = new JFormattedTextField(ipmask);
Run Code Online (Sandbox Code Playgroud)

field.setValue("111.222.333.444"); 工作,但

field.setValue(" 10.222.333.444"); 不起作用

field.setValue("10 .222.333.444"); 不起作用

field.setValue("10.222.333.444"); 不起作用

设定价值的正确方法是什么?

Fem*_*emi 5

相当奇怪,但这出现在另一个问题(在Java:网络设置窗口).经过深入挖掘后,Sun推出了RegexFormatter实现(请参阅http://java.sun.com/products/jfc/tsc/articles/reftf/ ;在http://java.sun.com/下载源代码products/jfc/tsc/articles/reftf/RegexFormatter.java)你可以像这样使用:

JFormattedTextField ipAddress;
   try{
    RegexFormatter ipmask = new RegexFormatter("\\d{0,3}\\.\\d{0,3}\\.\\d{0,3}\\.\\d{0,3}");
        ipmask.setOverwriteMode(false);
    ipAddress = new JFormattedTextField(ipmask);
}catch(Exception e1){
}
ipAddress.setValue("255.255.255.255");
Run Code Online (Sandbox Code Playgroud)

你可能已经从这里开始了,但我想我会坚持这一点以防其他人徘徊.