Java 如何在正在验证的jTextField上设置默认值?
我想验证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
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\.]+”,该参数将与之匹配。(注释已删除,请参阅答案)