使用登录控件(用户名和密码)我可以按控件上的Enter键然后选项卡(不输入任何内容),我会收到输入有效用户名的警告。这是期望的效果,但是如果我只是选项卡或单击字段,事件不会触发,如果用户输入用户名并按下回车,光标也不会移动到下一个字段。有什么建议?
控制器代码
.+
FXML代码
void getUserName(ActionEvent event) {
userName.focusedProperty().addListener((ov, oldV, newV) -> {
if (!(userName.getText().isEmpty())) {
if (!newV) {
String textUserValue = userName.getText();
warningLabel.setVisible(false);
userPwd.requestFocus();
}
} else {
warningLabel.setText("Please enter a valid user name");
warningLabel.setVisible(true);
warningLabel.setStyle("-fx-text-fill: red; -fx-font-size: 12;");
userName.requestFocus();
}
});
}
@FXML
void pwdController(ActionEvent event) {
userPwd.focusedProperty().addListener((ov, oldV, newV) -> {
if (!newV) {
if (!(userPwd.getText().isEmpty())) {
String textPwdValue = userPwd.getText();
warningLabel.setVisible(false);
String uName = userName.getText();
ServiceWrapper.conn1(uName, textPwdValue);
srcUpi.setDisable(false);
tgtUpi.setDisable(false);
mrgEqstDt.setDisable(false);
userName.setDisable(true);
userPwd.setDisable(true);
srcUpi.requestFocus();
}
} else {
warningLabel.setText("Please enter a valid password");
warningLabel.setVisible(true);
warningLabel.setStyle("-fx-text-fill: red; -fx-font-size: 12;");
userPwd.requestFocus();
}
});
}