如何在正在验证的jTextField上设置默认值?

时间:2011-06-05 06:16:44

标签: java swing jtextfield

我想验证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");

1 个答案:

答案 0 :(得分:1)

可能的原因是setText(“127.0.0.1”)使用str参数“127.0.0.1”调用insertString,这与您正在使用的正则表达式不匹配。所以我认为你可以用“[0-9 \。] +”代替它。