我想知道这段代码有什么问题? 我正在文本框中输入我的输入(一个10位数的手机号码)。 我的问题是,即使我的输入是正确的,这段代码也会一直打印else语句。
mobNo=textMobNo.getText();
textMobNo.addFocusListener(new FocusListener() {
@Override
public void focusLost(FocusEvent arg0) {
// TODO Auto-generated method stub
Pattern pattern = Pattern.compile("^[789]\\d{9}$");
Matcher matcher = pattern.matcher(mobNo);
if (matcher.matches()){
System.out.println("valid");
}
else{
System.out.println("invalid");
}
}
@Override
public void focusGained(FocusEvent arg0) {
// TODO Auto-generated method stub
};
});
答案 0 :(得分:1)
您正在从文本字段中获取文本,然后添加一个focusListener。稍后,焦点侦听器将被触发,然后使用在焦点侦听器处于活动状态之前从场中获取的文本。是的,该文本可能来自于在该领域输入任何内容之前;这可以解释它是一个空字符串。尝试在焦点监听器中获取文本...(提示 - 从文本字段中获取的字符串不会随着文本在字段中键入而不断更新...)