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文档