我有两个单独的 textProperty 监听器来监听 javaFX 应用程序上的更改,以便它可以分别更新密码强度图标和有效用户名图标。这两个函数都从 TextField(用户名)和 PasswordField(密码)获取数据。这些是听众:
if(loginCheck.passwordValidator(password.getText()) == -1) {
passwordImg.setImage(fail);
submit.setDisable(true);
}
if(loginCheck.usernameValidator(username.getText()) == -1) {
usernameImg.setImage(fail);
submit.setDisable(true);
}
当一个或其他函数返回 -1 时,我试图让按钮(提交)保持禁用状态。当任一函数具有正确的输出时,我可以禁用该按钮,但如果不使用单独的 Submit.setDisable(false) 调用,我无法再次启用该按钮;当一个监听器尝试启用该按钮时,它会扁平化,而根据另一监听器,该按钮仍应被禁用。有没有办法将按钮设置为始终保持关闭状态,除非两个事件都为真?
提前致谢!
最佳答案
只需使用逻辑或运算组合您的条件 - ||
boolean invalidPassword = loginCheck.passwordValidator(password.getText()) == -1;
boolean invalidUsername = loginCheck.usernameValidator(username.getText()) == -1;
if (invalidPassword) {
passwordImg.setImage(fail);
}
if(invalidUsername) {
usernameImg.setImage(fail);
}
// if at least one of variables is true then submit will be disabled
submit.setDisable(invalidPassword || invalidUsername);
关于java - 除非 javaFX 中两个事件为真,否则如何将按钮设置为保持禁用状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45043783/