是否可以使密码字段内容可见?

时间:2020-06-12 10:56:50

标签: javafx

我在javafx中有一个密码字段,如果可以的话,如何使其内容可见(不带圆圈)? 我找到了与此相关的帖子,但这是针对复选框的,而我是手动对其进行更改。

How to unmask a JavaFX PasswordField or properly mask a TextField?

我也遇到了密码字段问题,无法使用setText()方法更改其文本。

public class LoginSignUpPage {

public TextField signUpUsername;
public PasswordField signUpPassword;
public PasswordField loginPassword;
public TextField loginUsername;

private boolean areLoginTextFieldsFilled(TextField userName, PasswordField passWord) {
    boolean isInfoCorrect = true;
    /*if (userName.getText().equals("")) {
        userName.setText("enter a username");
        userName.setStyle("-fx-text-fill : RED;-fx-border-color : RED;");
        isInfoCorrect = false;
    }*/
    if (passWord.getText().equals("")) {
        passWord.setText("enter a password");
        passWord.setStyle("-fx-text-fill : RED;-fx-border-color : RED;");
        passWord.setVisible(true);
        isInfoCorrect = false;
    }
    return isInfoCorrect;
}

public void login(MouseEvent mouseEvent) {
    areLoginTextFieldsFilled(loginUsername, loginPassword);
}

}

但setVisible无效:(

1 个答案:

答案 0 :(得分:0)

我认为提供的示例有效。您只需将复选框替换为布尔值,然后将其用于事件即可。

 boolean pass_toggle = true;
   public void togglevisiblePassword(ActionEvent event) {
    if (pass_toggle) {
        pass_text.setText(pass_hidden.getText());
        pass_text.setVisible(true);
        pass_hidden.setVisible(false);
        pass_toggle = false;
        return;
      } else {
        pass_hidden.setText(pass_text.getText());
        pass_text.setVisible(false);
        pass_hidden.setVisible(true);
        pass_toggle = true;
        return;
      }
   }

有关详细解决方案,请提供您自己的代码或更多详细信息。