首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JTextField验证

JTextField验证
EN

Stack Overflow用户
提问于 2016-02-19 15:56:45
回答 1查看 314关注 0票数 0

我正在处理一个Add新用户表单,在验证以下内容之后,我必须启用Save按钮。

1.用户名字段必须包括一些字母(正确或错误的用户名)。

2.密码字段和验证密码字段必须包括一些字母(正确或错误的密码)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-19 16:27:28

像这样的东西可能对你有用。这个例子是不完整的。你需要创建表格,主……我只关注如何处理检查,以便在JTextField焦点丢失时启用Save按钮。

1)将丢失焦点事件添加到文本字段如下:

代码语言:javascript
复制
private JTextField getTxtUser() {
    if (txtUser == null) {
        txtUser = new JTextField();
        txtUser.addFocusListener(new java.awt.event.FocusAdapter() {
            @Override
            public void focusLost(java.awt.event.FocusEvent e) {
                getBtnSave().setEnabled(
                    !getTxtUser().getText().isEmpty() &&
                    !getTxtPass().getText().isEmpty());
            }
        });
    }
    return txtUser;
}

private JTextField getTxtPass() {
    if (txtPass == null) {
        txtPass = new JTextField();
        txtPass.addFocusListener(new java.awt.event.FocusAdapter() {
            @Override
            public void focusLost(java.awt.event.FocusEvent e) {
                getBtnSave().setEnabled(
                    !getTxtUser().getText().isEmpty() &&
                    !getTxtPass().getText().isEmpty());
            }
        });
    }
    return txtPass;
}

private JButton getBtnSave() {
    if (btnSave == null) {
        btnSave = new JButton("Save");
        btnSave.setEnabled(false);
    }
}

更好的方法可能是将事件侦听器添加到JTextField中的周围文档中,如下所示:

代码语言:javascript
复制
                txtUser.getDocument().addDocumentListener(new DocumentListener() {

                    @Override
                    public void removeUpdate(DocumentEvent e) {
                getBtnSave().setEnabled(
                    !getTxtUser().getText().isEmpty() &&
                    !getTxtPass().getText().isEmpty());
                    }

                    @Override
                    public void insertUpdate(DocumentEvent e) {
                getBtnSave().setEnabled(
                    !getTxtUser().getText().isEmpty() &&
                    !getTxtPass().getText().isEmpty());
                    }

                    @Override
                    public void changedUpdate(DocumentEvent e) {
                getBtnSave().setEnabled(
                    !getTxtUser().getText().isEmpty() &&
                    !getTxtPass().getText().isEmpty());
                    }
                });

但需要模式代码..。

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

https://stackoverflow.com/questions/35509465

复制
相关文章

相似问题

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