文档



JavaFX:使用JavaFX UI组件

9 密码字段

在本章中,您将学习另一种文本控件类型,即密码字段。

PasswordField类实现了一个专门的文本字段。用户输入的字符通过显示一个回显字符串来隐藏。 图9-1显示了一个带有输入密码的密码字段。

图9-1 密码字段

带有提示消息的密码框
"图9-1 密码字段"的描述

创建密码字段

创建密码字段的入门任务是使用示例9-1中的代码。

示例9-1 创建密码字段

PasswordField passwordField = new PasswordField();
passwordField.setPromptText("您的密码");

对于您的用户界面,您可以在密码字段旁边添加一个提示消息,或者添加一个通知标签。与TextField类一样,PasswordField类提供了setText方法,在应用程序启动时在控件中呈现文本字符串。但是,在密码字段中,setText方法中指定的字符串被回显字符隐藏。默认情况下,回显字符是一个点。 图9-2显示了带有预定义文本的密码字段。

图9-2 带有设置文本的密码字段

密码框
"图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-3 密码不正确

输入的密码不正确
"图9-3 密码不正确"的描述

如果输入的值满足预定义的条件,则确认消息将显示,如图9-4所示。

图9-4 密码正确

密码正确
"图9-4 密码正确"的描述

出于安全原因,在输入值后清除密码字段是一个好的做法。在示例9-2中,身份验证完成后,密码字段被设置为空字符串。

相关API文档 

关闭窗口

目录

JavaFX:使用JavaFX UI组件

展开 折叠