web-dev-qa-db-ja.com

JTextFIeldでのパスワードの非表示/表示(Java Swing)

だから私はパスワード強度チェッカーに取り組んできましたが、その動作方法は、ユーザーがテキストフィールドにランダムなテキストを入力すると、瞬時の視覚フィードバック(ポイントの内訳)が表示されるということです。また、チェックボックスを追加しました。これを選択すると、パスワードが非表示になります。つまり、ユーザーによる実際のテキスト入力を保持しながら、すべての文字をアスタリスクに置き換えます。テキストリスナー内の変更を追跡するためにドキュメントリスナーが使用されています。 (エントリの各文字が分析されてからスコア付けされます)

だから、私の質問は、元の値を保持するアスタリスクでユーザー入力をどのように正確にマスクするのですか?

GUIは次のようになります。

http://speedcap.net/sharing/screen.php?id=files/51/2f/512f9abb3f92a25add7c593e9d80e9e4.png

14
Manas Bajaj

元の値を保持するアスタリスクでユーザー入力を正確にマスクするにはどうすればよいですか?

Nice関数jPasswordField.getPassword();を持つJPasswordFieldを使用して、パスワードを_char[]_として取得し、処理します。

  • jPasswordField1.setEchoChar('*')を使用して、パスワード文字を_*_でマスクします。
  • 挿入する値を表示する場合は、jPasswordField1.setEchoChar((char)0);を使用します。_0_の値を設定すると、標準のJTextField

チュートリアルとリファレンス:

  1. パスワードフィールドの使用方法
  2. setEchoChar(char)
32
Sage

テキストフィールドを使用する代わりにパスワードフィールドを使用する

チュートリアルのおかげで、

および元、

アクションチェックボックス/ダブルクリック

private void lihatActionPerformed(Java.awt.event.ActionEvent evt) {  

   if (lihat.isSelected()) {
      password.setEchoChar((char)0); //password = JPasswordField
   } else {
      password.setEchoChar('*');
   }
}
0
Mahdani Ismail