1

JFrameクラスには、次のようなJPasswordFieldオブジェクトがあります。

pswdTextField = new JPasswordField(20);
externalPanel.add(pswdTextField, "w 90%, wrap");

次のコード行で、挿入されたコンテンツ (ユーザーが挿入したパスワード) にアクセスしようとしました。

char[] pswd = pswdTextField.getPassword();
System.out.println("Password: " + pswd.toString());

問題は、このコンテンツを印刷しようとすると、次の出力が得られることです:パスワード: [C@d5c0f9であり、挿入されたパスワードではありません

なんで?それはどういう意味ですか?挿入されたパスワードを取得するにはどうすればよいですか?

TNX

アンドレア

4

3 に答える 3

0

JPasswordField の getText() は廃止されました

Javaソースでは、 getText() 定義の上に書かれています

" セキュリティ上の理由から、このメソッドは非推奨です。 "

したがって、getPassword() が推奨されます。あなたが直面している問題は、 System.out.println() を使用して配列を印刷していることです。その文字配列を使用して文字列を作成するか、for ループを使用して各要素に 1 つずつアクセスします。

for(int i=0;i < charArray.length;i++)

System.out.print (charArray[i]);

于 2013-11-30T11:20:34.583 に答える