ドキュメント



JavaFX: JavaFX UIコンポーネントの操作

9 パスワード・フィールド

この章では、別のタイプのテキスト・コントロールであるパスワード・フィールドについて学習します。

PasswordFieldクラスは特殊なテキスト・フィールドを実装します。ユーザーが入力した文字はエコー文字列を表示することによって隠されます。図9-1に、パスワードを入力したパスワード・フィールドを示します。

図9-1 パスワード・フィールド

プロンプト・メッセージのあるパスワード・ボックス
「図9-1 パスワード・フィールド」の説明

パスワード・フィールドの作成

エントリ・レベルのタスクでは、例9-1のコードを使用してパスワード・フィールドを作成します。

例9-1 パスワード・フィールドの作成

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

ユーザー・インタフェースでは、パスワード・フィールドにプロンプト・メッセージを関連付けるか、または通知ラベルを追加できます。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("Password");
final PasswordField pb = new PasswordField();

pb.setOnAction((ActionEvent e) -> {
    if (!pb.getText().equals("T2f$Ay!")) {
        message.setText("Your password is incorrect!");
        message.setTextFill(Color.rgb(210, 39, 30));
    } else {
        message.setText("Your password has been confirmed");
        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では、認証の実行後にpasswordFieldに空の文字列を設定しています。

関連APIドキュメント

ウィンドウを閉じる

目次

JavaFX: JavaFX UIコンポーネントの操作

展開 | 縮小