PasswordField用于密码输入。用户键入的字符通过显示回显字符串被隐藏。

创建密码字段

以下代码使用来自PasswordField类的默认构造函数创建一个密码字段,然后为密码字段设置提示消息文本。 提示消息在字段中显示为灰色文本,并为用户提供该字段是什么的提示,而不使用标签控件。

  1. PasswordField passwordField = new PasswordField();
  2. passwordField.setPromptText("Your password");

PasswordField类有setText方法来为控件设置文本字符串。对于密码字段,指定的字符串由回显字符隐藏。默认情况下,回显字符是一个点(或是星号)。
密码字段中的值可以通过getText()方法获取。

示例

密码字段和操作侦听器,如下所示 -

  1. import javafx.application.Application;
  2. import javafx.event.ActionEvent;
  3. import javafx.event.EventHandler;
  4. import javafx.geometry.Insets;
  5. import javafx.geometry.Pos;
  6. import javafx.scene.Group;
  7. import javafx.scene.Scene;
  8. import javafx.scene.control.Label;
  9. import javafx.scene.control.PasswordField;
  10. import javafx.scene.layout.HBox;
  11. import javafx.scene.layout.VBox;
  12. import javafx.scene.paint.Color;
  13. import javafx.stage.Stage;
  14. public class Main extends Application {
  15. final Label message = new Label("");
  16. @Override
  17. public void start(Stage stage) {
  18. Group root = new Group();
  19. Scene scene = new Scene(root, 260, 80);
  20. stage.setScene(scene);
  21. stage.setTitle("Password Field Sample");
  22. VBox vb = new VBox();
  23. vb.setPadding(new Insets(10, 0, 0, 10));
  24. vb.setSpacing(10);
  25. HBox hb = new HBox();
  26. hb.setSpacing(10);
  27. hb.setAlignment(Pos.CENTER_LEFT);
  28. Label label = new Label("Password");
  29. final PasswordField pb = new PasswordField();
  30. pb.setOnAction(new EventHandler<ActionEvent>() {
  31. @Override
  32. public void handle(ActionEvent e) {
  33. if (!pb.getText().equals("abc")) {
  34. message.setText("Your password is incorrect!");
  35. message.setTextFill(Color.web("red"));
  36. } else {
  37. message.setText("Your password has been confirmed");
  38. message.setTextFill(Color.web("black"));
  39. }
  40. pb.setText("");
  41. }
  42. });
  43. hb.getChildren().addAll(label, pb);
  44. vb.getChildren().addAll(hb, message);
  45. scene.setRoot(vb);
  46. stage.show();
  47. }
  48. public static void main(String[] args) {
  49. launch(args);
  50. }
  51. }

Video_2022-04-28_161022.wmv (71.63KB)