我有一个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:网络设置窗口).经过深入挖掘后,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");
你可能已经从这里开始了,但我想我会坚持这一点以防其他人徘徊.