我有一个用于IP地址的格式化文本字段:
ipmask = new MaskFormatter("###.###.###.###");
ipmask.setPlaceholderCharacter(' ');
field = new JFormattedTextField(ipmask);
field.setValue("111.222.333.444");
有效,但field.setValue(" 10.222.333.444");
不起作用field.setValue("10 .222.333.444");
不起作用field.setValue("10.222.333.444");
不起作用设置值的正确方法是什么?
最佳答案
有点奇怪,但这是另一个问题(位于Java: network settings window)。深入研究之后,可以找到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");
您可能已经从这里继续前进了,但以为我会坚持这样做,以防其他人徘徊。