首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JTextField上添加FocusListener

在JTextField上添加FocusListener
EN

Stack Overflow用户
提问于 2013-11-14 19:12:09
回答 3查看 1.7K关注 0票数 0

我有一个文本字段,我必须在其中验证一个Email.My问题是,我想要从文本字段仅当电子邮件有效时移动焦点。我现在使用FocusAdapter。有没有人能给我点别的建议?

EN

回答 3

Stack Overflow用户

发布于 2013-11-14 19:48:57

查看javax.swing.InputVerifierJComponent.setInputVerifier(),但不要忘记安德鲁的建议。您的工作流程对用户不友好。

这里已经描述过了:Java - making a textbox not lose focus

票数 3
EN

Stack Overflow用户

发布于 2013-11-14 19:16:49

试试这个:

代码语言:javascript
复制
public static boolean isValidEmailAddress(String email)
{
   boolean result=true;
   try
   {
      InternetAddress emailAddr=new InternetAddress(email);
      emailAddr.validate();
   } catch(AddressException ex)
   {
      result=false;
   }
   return result;
}
票数 0
EN

Stack Overflow用户

发布于 2013-11-14 19:24:00

在下一个示例中,如果验证失败,则无法移动到另一个字段,这是在requestFocusInWindow()方法的帮助下完成的。试一试,我认为它对你有帮助:

代码语言:javascript
复制
public class Frame extends JFrame {

    private JTextField f;
    private JTextField f2;
    private JTextField f3;

    public Frame() {
        f = new JTextField(5);
        f2 = new JTextField(5);
        f3 = new JTextField(5);
        f.addFocusListener(getFocusListener());
        getContentPane().setLayout(new GridLayout(3,1,5,5));
        getContentPane().add(f);
        getContentPane().add(f2);
        getContentPane().add(f3);
        pack();
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setVisible(true);
    }

    private FocusListener getFocusListener() {
        return new FocusAdapter() {
            @Override
            public void focusLost(FocusEvent arg0) {
                super.focusLost(arg0);
                if(!validateEmail()){
                    f.requestFocusInWindow();
                }
            }
        };
    }

    private boolean validateEmail() {
        return f.getText().length()<3;
    }

    public static void main(String args[]) {
        new Frame();

    }

}

阅读有关requestFocusInWindow()How to Use the Focus Subsystem的更多信息

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19976166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档