3

getPassword() は私に文字の配列を与えますが、このように見えるパスワードがこのよう******に表示されるようにしたいのですがMyPaSwOrd、どうすればそれを行うことができますか?

パスワードを抽出したくありません。 JPasswordField() 内に「パスワードを入力してください」のように書きたいだけです。ユーザーがクリックすると、これが消えて、次のように自分のパスワードを入力します。 * * * * * *

4

3 に答える 3

1

これを試して:

String password = new String(passwordField.getText());

ただし、ドキュメントには、パスワード情報の確認/操作/受け渡しに文字列を使用すべきではないと明示的に記載されています。

これは、char[] パスワードを確認する方法を説明します。

編集 :

JField「ここにパスワードを入力してください」という通常のものがあり、それtextをクリックlistenerします。ユーザーがクリックするたびに、 を削除して、フォーカスのあるJTextFieldものに置き換えますJPassword

于 2012-05-24T10:09:30.883 に答える
1

ふたつのやり方:

  1. setEchoChar メソッドを使用し (こちらを参照)、値を 0 に設定します (JavaDoc で説明されているように)
  2. 共通の JTextField を使用する

編集:

クリックすると消える「Enter PW」のようなテキストをフィールドに表示したい場合は、次のようにしてみてください。

public class JPassword {

    public static void main(String[] args) {

        JFrame frame = new JFrame();

        final JPasswordField field = new JPasswordField();

        field.addFocusListener(new FocusListener() {

            @Override
            public void focusLost(FocusEvent arg0) {

                char c = 0;
                field.setEchoChar(c);
                field.setText("Enter PW");

            }

            @Override
            public void focusGained(FocusEvent arg0) {

                char c = 1;
                field.setEchoChar(c);
                            field.setText("");
            }
        });

        char c = 0;
        field.setText("Enter PW");
        field.setEchoChar(c);

        frame.setLayout(new FlowLayout());
        frame.getContentPane().add(new JButton("test"));
        frame.getContentPane().add(field);
        frame.pack();
        frame.setVisible(true);
    }
}

注: ユーザーがパスワードを入力したかどうかを確認する必要があります。持っていた場合は、focuseGained メソッドを実行しないでください。そうしないと、パスワードが消えます。しかし、これは問題にはなりません。

于 2012-05-24T10:09:12.607 に答える
0

汚い道

make one passwordfield と a text field... チェックボックスをオンにすると、passwordField が非表示になり、テキスト ボックスが表示されます。

チェックされていない状態では、passwordField が表示され、textfield は表示されません。

最後に、passwordField に入力されたテキストをコピーする textfield を作成します。

于 2012-05-24T12:06:58.807 に答える