我正在处理一个Add新用户表单,在验证以下内容之后,我必须启用Save按钮。
1.用户名字段必须包括一些字母(正确或错误的用户名)。
2.密码字段和验证密码字段必须包括一些字母(正确或错误的密码)。
发布于 2016-02-19 16:27:28
像这样的东西可能对你有用。这个例子是不完整的。你需要创建表格,主……我只关注如何处理检查,以便在JTextField焦点丢失时启用Save按钮。
1)将丢失焦点事件添加到文本字段如下:
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中的周围文档中,如下所示:
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());
}
});但需要模式代码..。
https://stackoverflow.com/questions/35509465
复制相似问题