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

Java 如何在正在验证的jTextField上设置默认值?,java,swing,jtextfield,Java,Swing,Jtextfield,我想验证jTextField的输入,并设置一个默认值。据我所知,这段代码应该可以工作,但默认值从未出现。如果删除验证代码,则默认值将按其应有的方式显示。是否有一种方法可以进行输入验证并同时具有默认值 myInput.setDocument(new javax.swing.text.PlainDocument(){ @Override public void insertString(int offs, String str, javax.swing.text

我想验证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");
myInput.setDocument(新的javax.swing.text.PlainDocument(){
@凌驾
public void insertString(int offs、String str、javax.swing.text.AttributeSet a)
抛出javax.swing.text.BadLocationException{

如果((getLength()+str.length())可能是因为setText(“127.0.0.1”)使用str参数“127.0.0.1”调用insertString,该参数与您正在使用的regexp不匹配。因此我认为您可以将其替换为“[0-9\.]+”,该参数将与之匹配。

(注释已删除,请参阅答案)