我想验证jTextField的输入并且还设置了默认值。根据我的理解,此代码应该可以工作,但默认值永远不会出现。如果我删除验证代码,则默认值显示为应该。有没有办法让我可以进行输入验证并且还有默认值?
myInput.setDocument(new javax.swing.text.PlainDocument(){
@Override
public void insertString(int offs, String str, javax.swing.text.AttributeSet a)
throws javax.swing.text.BadLocationException {
if((getLength() + str.length()) <= 15
&& str.matches("[0-9\\.]"))
super.insertString(offs, str, a);
}
});
myInput.setText("127.0.0.1");
答案 0 :(得分:1)
可能的原因是setText(“127.0.0.1”)使用str参数“127.0.0.1”调用insertString,这与您正在使用的正则表达式不匹配。所以我认为你可以用“[0-9 \。] +”代替它。