9 密码字段
在本章中,您将学习另一种文本控件类型,即密码字段。
PasswordField类实现了一个专门的文本字段。用户输入的字符通过显示一个回显字符串来隐藏。 图9-1显示了一个带有输入密码的密码字段。
创建密码字段
创建密码字段的入门任务是使用示例9-1中的代码。
示例9-1 创建密码字段
PasswordField passwordField = new PasswordField();
passwordField.setPromptText("您的密码");
对于您的用户界面,您可以在密码字段旁边添加一个提示消息,或者添加一个通知标签。与TextField类一样,PasswordField类提供了setText方法,在应用程序启动时在控件中呈现文本字符串。但是,在密码字段中,setText方法中指定的字符串被回显字符隐藏。默认情况下,回显字符是一个点。 图9-2显示了带有预定义文本的密码字段。
可以通过getText方法获取密码字段中输入的值。您可以在应用程序中处理此值,并根据需要设置身份验证逻辑。
评估密码
请花一点时间在示例9-2中回顾一下您可以在用户界面中应用的密码字段的实现。
示例9-2 实现身份验证逻辑
final Label message = new Label("");
VBox vb = new VBox();
vb.setPadding(new Insets(10, 0, 0, 10));
vb.setSpacing(10);
HBox hb = new HBox();
hb.setSpacing(10);
hb.setAlignment(Pos.CENTER_LEFT);
Label label = new Label("密码");
final PasswordField pb = new PasswordField();
pb.setOnAction((ActionEvent e) -> {
if (!pb.getText().equals("T2f$Ay!")) {
message.setText("您的密码不正确!");
message.setTextFill(Color.rgb(210, 39, 30));
} else {
message.setText("您的密码已确认");
message.setTextFill(Color.rgb(21, 117, 84));
}
pb.clear();
});
hb.getChildren().addAll(label, pb);
vb.getChildren().addAll(hb, message);
密码字段的身份验证逻辑是通过使用setOnAction方法来定义的。当密码被提交时,该方法被调用并处理输入的值。如果输入的值与所需密码不同,则相应的消息以红色显示,如图9-3所示。
如果输入的值满足预定义的条件,则确认消息将显示,如图9-4所示。
出于安全原因,在输入值后清除密码字段是一个好的做法。在示例9-2中,身份验证完成后,密码字段被设置为空字符串。
相关API文档

