来自一个控件的多个事件

时间:2018-04-16 15:58:41

标签: javafx actionlistener scenebuilder

使用登录控件(用户名和密码)我可以按控件上的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();
        }
    });
}

0 个答案:

没有答案